«object-oriented» 태그된 질문

시스템을 모듈 방식으로 제어 및 조작 할 수있는 일련의 객체로 모델링 할 수있는 방법론

6
“인터페이스 프로그래밍”이해
"구현 대신 인터페이스 프로그래밍"이라는 용어를 많이 접하게되었으며 그 의미를 이해하고 있다고 생각합니다. 그러나 그것이 이점과 가능한 구현인지 이해하고 싶습니다. "인터페이스 프로그래밍"이란 가능한 경우 구체적인 구현을 참조하는 대신보다 추상적 인 수준의 클래스 (인터페이스, 추상 클래스 또는 때로는 일종의 수퍼 클래스)를 참조해야 함을 의미합니다. Java의 일반적인 예는 다음을 사용하는 것입니다. List myList …

9
대부분의 "잘 알려진"명령형 / OO 언어가 '아무것도없는'값을 나타낼 수있는 유형에 대한 확인되지 않은 액세스를 허용하는 이유는 무엇입니까?
나는 null(예를 들어) 대신에 ( 비) 편의에 대해 읽었습니다 Maybe. 읽은 후 이 글을 , 나는 그것을 사용하는 것이 훨씬 더 좋을 것이라고 확신하고있다Maybe (또는 무언가 유사). 그러나 모든 "잘 알려진"명령형 또는 객체 지향 프로그래밍 언어가 여전히 사용하고 있으며 null( '아무것도없는'값을 나타낼 수있는 유형에 대한 확인되지 않은 액세스를 허용 함 …

12
왜 수업이 "추상"또는 "최종 / 봉인"이외의 것이어야합니까?
10 년 이상의 java / c # 프로그래밍 후 다음 중 하나를 생성했습니다. 추상 클래스 : 계약은있는 그대로 인스턴스화되지 않습니다. final / sealed classes : 구현은 다른 것에 대한 기본 클래스로 사용되지 않습니다. 간단한 "클래스"(즉, 추상이나 최종 / 봉인되지 않은)가 "현명한 프로그래밍"이되는 상황은 생각할 수 없습니다. 왜 수업이 "추상"또는 "최종 …

7
"데이터 숨기기"와 "캡슐화"의 차이점은 무엇입니까?
"실제로 Java 동시성"을 읽고 있는데 다음과 같이 말합니다. "다행히 캡슐화 및 데이터 숨기기와 같이 체계적으로 유지 관리 가능한 클래스를 작성하는 데 도움이되는 동일한 객체 지향 기술로 스레드 안전을 만드는 데 도움이 될 수 있습니다. 수업. " 문제 # 1-데이터 숨기기에 대해 들어 본 적이 없으며 그것이 무엇인지 모릅니다. 문제 # …

12
수업에 얼마나 큰가요?
나는 오랜 개발자 (나는 49입니다)이지만 객체 지향 개발에 익숙하지 않습니다. Bertrand Meyer 's Eiffel 이후 OO에 대해 읽었지만 OO 프로그래밍은 거의하지 않았습니다. 요점은 OO 디자인에 대한 모든 책은 보트, 자동차 또는 우리가 자주 사용하는 일반적인 객체의 예로 시작하며 속성과 메소드를 추가하고 객체의 상태를 모델링하는 방법과 수행 할 수있는 것을 설명하기 …


6
기능적 언어를 배우면 더 나은 OOP 프로그래머가됩니까? [닫은]
Java / C # / C ++ 프로그래머로서 기능 언어에 대해 많은 이야기를 듣지만 언어를 배울 필요는 없었습니다. 또한 기능적 언어로 도입 된 높은 수준의 사고로 인해보다 나은 OOP / 절차 언어 프로그래머가 될 수 있다고 들었습니다. 누구든지 이것을 확인할 수 있습니까? 프로그래밍 기술을 향상시키는 방법은 무엇입니까? 덜 복잡한 언어의 …

6
int와 같은 기본 유형을 클래스로 구현할 때의주의 사항은 무엇입니까?
객체 지향 프로그래밍 언어를 디자인하고 함축 할 때, 어떤 시점에서 기본 유형 (예 int: float, double또는 등가물)을 클래스 또는 다른 것으로 구현하는 방법을 선택해야합니다 . 분명히 C 패밀리의 언어는 클래스로 정의 하지 않는 경향이 있습니다 (자바에는 특수한 기본 유형이 있고 C #은이를 불변의 구조체로 구현합니다). 기본 유형이 클래스로 구현 될 …

7
함수형 프로그래밍은 "시스템을 모듈로 분해하는 데 사용되는 기준"(데이터 숨기기)의 이점을 무시합니까?
방금 처음으로 읽은 시스템을 모듈로 분해하는 데 사용되는 기준에 관한 고전 기사가 있습니다 . 그것은 나에게 완벽하게 이해되며 아마도 OOP가 기반으로 한 기사 중 하나 일 것입니다. 결론 : 이러한 예를 통해 플로우 차트를 기반으로 시스템을 모듈로 분해하는 것이 거의 항상 올바르지 않음을 보여 주려고 시도했습니다. ... 그런 다음 각 …

9
Liskov 대체 원칙을 위반하면 무엇이 잘못 될 수 있습니까?
나는 Liskov 대체 원칙에 대한 위반 가능성에 대해이 매우 투표가 많은 질문 을 따랐습니다. 나는 Liskov 대체 원칙이 무엇인지 알고 있지만, 여전히 내 마음에 분명하지 않은 것은 개발자가 객체 지향 코드를 작성하는 동안 원칙에 대해 생각하지 않으면 잘못 될 수 있다는 것입니다.

12
SOLID vs. 조기 추상화 방지
나는 모듈성이 중요하고 목표가 명확하게 유용한 상황에서 SOLID 가 무엇 을 달성하고 정기적으로 사용 하는지 이해 합니다. 그러나 두 가지로 인해 코드베이스에서 일관되게 적용 할 수 없습니다. 조기 추상화를 피하고 싶습니다. 내 경험상 구체적인 유스 케이스 (현재 또는 가까운 미래 에 존재하지 않는)없이 추상화 라인을 그리는 것은 잘못된 위치에 그려집니다. …

14
비 OO 코드베이스가 얼마나 큰가?
저는 추상화가 코드베이스 관리를 위해 OO가 제공하는 매우 유용한 기능이라는 것을 항상 알고 있습니다. 그러나 큰 비 OO 코드 기반은 어떻게 관리됩니까? 아니면 그것들은 단지 " 진흙의 큰 공 "이됩니까? 업데이트 : 모든 사람들이 '추상화'는 모듈화 또는 데이터 숨김이라고 생각하는 것 같습니다. 그러나 IMHO는 또한 의존성 주입 및 테스트에 필수적인 …

6
함수형 프로그래밍은 객체 지향의 슈퍼 세트입니까?
기능성 프로그래밍이 많을수록 양파의 레이어가 이전 레이어를 모두 포함하는 것처럼 보이는 추가 추상화 레이어를 추가하는 것처럼 느껴집니다. 이것이 사실인지 모르겠습니다. 수년간 함께해온 OOP 원칙을 벗어나고, 캡슐화, 추상화, 상속, 다형성과 같은 기능적 기능을 설명 할 수 있습니까? 우리 모두가 말할 수 있다고 생각합니다. 예, 튜플을 통해 캡슐화되었거나 튜플이 기술적으로 "기능적 프로그래밍"의 …

8
일부 또는 모든 SOLID 원칙이 코드를 깨끗하게 해석하기 어려운 OOP의 특징이 있습니까?
저는 최근 비디오 게임 개발에서 OOP에 대해 제 친구와 토론했습니다. 친구의 놀랍게도 많은 작은 클래스와 여러 추상화 계층이 포함 된 내 게임 중 하나의 아키텍처를 설명하고있었습니다. 나는 이것이 모든 일에 단일 책임을 부여하고 구성 요소 간의 결합을 완화하는 데 중점을 둔 결과라고 주장했다. 그의 우려는 많은 클래스가 유지 보수의 악몽으로 …

5
OO 프로그램을 기능적으로 재구성하는 방법은 무엇입니까?
기능적인 스타일로 프로그램을 작성하는 방법에 대한 리소스를 찾는 데 어려움을 겪고 있습니다. 온라인에서 논의 할 수있는 가장 고급 주제는 구조적 타이핑을 사용하여 클래스 계층 구조를 줄이는 것이 었습니다. 대부분은 map / fold / reduce / etc를 사용하여 명령형 루프를 대체하는 방법을 처리합니다. 내가 정말로 찾고 싶은 것은 사소하지 않은 프로그램의 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.