«object-oriented» 태그된 질문

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

8
객체 지향 클래스 디자인
좋은 객체 지향 클래스 디자인이 궁금합니다. 특히, 나는이 옵션들 사이를 결정하는 데 어려움을 겪고 있습니다. 정적 대 인스턴스 방법 매개 변수가없는 메소드 또는 리턴 값 대 매개 변수가있는 메소드 및 리턴 값 중복 대 고유 한 방법 기능 개인 대 공개 방법 예 1 : 이 구현은 반환 값이나 매개 …

9
상속이 잘못되었습니다
좋은 상속 모델이 내리막 길에 코드가 있는데 왜 그리고 어떻게 수정 해야하는지 이해하려고합니다. 기본적으로 다음과 같은 Zoo 계층 구조가 있다고 가정하십시오. class Animal class Parrot : Animal class Elephant : Animal class Cow : Animal 기타 eat (), run () 등의 메소드가 있으며 모두 좋습니다. 언젠가 누군가가 와서 말하기를-우리의 CageBuilder …

5
스위치를 통한 여러 방법의 장점
오늘 선임 개발자로부터 코드 검토를 받았습니다. 나는 여러 곳에서 스위치를 호출하는 메소드를 통해 인수를 펌핑하는 것이 나쁜 OOP이며 확장 가능하지 않은 방법에 대해 읽었습니다. 그러나 실제로 그에 대한 결정적인 대답을 얻을 수는 없습니다. 나는 이것을 한 번에 해결하고 싶다. 경쟁 코드 제안은 다음과 같습니다 (php는 예제로 사용되지만보다 보편적으로 적용될 수 …

9
객체 지향 함정 방지, C에서 마이그레이션, 무엇이 효과가 있었습니까?
나는 지금 절차 언어로 꽤 오랫동안 프로그래밍 해 왔으며, 문제에 대한 나의 첫 번째 반응은 존재하는 다른 엔티티 (객체)와 관계를 고려하기보다는 수행 할 작업으로 나누는 것입니다. 나는 OOP에서 대학 과정을 밟았으며 캡슐화, 데이터 추상화, 다형성, 모듈화 및 상속의 기본 사항을 이해합니다. 내가 읽은 /programming/2688910/learning-to-think-in-the-object-oriented-way 및 /programming/1157847/learning-object-oriented-thinking , 그 답변에서 지적 …

12
C ++이 OOP에 적합하지 않습니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 칠년 전에 …

4
OOP에 대한 필수 개념에 대한 일관된 정의가없는 이유는 무엇입니까?
나는 프로그래밍에 익숙하지 않고 다른 소스에서 다른 규칙을 읽고 듣고 약간 혼동합니다. 객체 지향 프로그래밍에는 4 개 또는 5 개의 개념이 있습니까? 새로 온 사람으로서, 나는 이것이 5 가지 개념이라는 것을 이해합니다. 추출 계승 캡슐화 다형성 모듈성 그렇다면 어떻게 더 "엄격한"정의를 찾지 못하고 이러한 개념들을 몇 가지 배열 한 것처럼 …

4
병렬 계층-부분적으로 동일, 부분적으로 다릅니다
비슷한 질문이 많이 있습니다. 1 ,2 ,3 ,4 , 그러나이 질문에서는 그렇지 않은 것처럼 보이거나 솔루션이 최적으로 보이지도 않습니다. 다형성, 제네릭 및 믹스 인을 사용할 수 있다고 가정하면 일반적인 OOP 질문입니다. 사용되는 실제 언어는 OOP Javascript (Typescript)이지만 Java 또는 C ++에서 동일한 문제입니다. 나는 때때로 같은 행동 (인터페이스와 구현)을 공유하는 …

7
OOP는 속성 개념을 포함하도록 어떻게 발전 했습니까?
나는 C ++ 배경에서 왔으며 현재 직장에서 C #을 외출 중이며 공개 필드와 속성의 차이점 과이의 변형과 화신의 앞뒤로 많은 Q & A를 읽었습니다. 기본 질문 (예 :이 SO 게시물 및 모든 관련 링크 된 질문 ). 이러한 모든 질문은 속성 시스템의 존재를 당연히 받아들이는 실질적인 차이 측면에서 다루어졌지만, 처음에는 …

3
종속성 반전 원리와 "구현이 아닌 인터페이스로의 프로그램"
Dependency Inversion Principle이 "구현이 아닌 인터페이스에 대한 프로그램"원칙과 어떻게 다른지 이해하려고합니다. "구현이 아닌 인터페이스에 대한 프로그램"의 의미를 이해합니다. 또한보다 유연하고 유지 관리 가능한 디자인이 가능한 방법을 이해합니다. 그러나 Dependency Inversion Principle이 "구현이 아닌 인터페이스에 대한 프로그램"원칙과 어떻게 다른지 이해하지 못합니다. 웹의 여러 곳에서 DIP에 대해 읽었지만 혼란을 풀지 못했습니다. 나는 …

1
큰 객체 계층 구조로 방문자 패턴 사용
문맥 객체 계층 구조 (표현식 트리)에서 "의사"방문자 패턴 (이중 디스패치를 ​​사용하지 않는 의사)을 사용했습니다. public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } 그러나 MyInterface의 구현 수가 상당수 (~ 50 …

3
메인 메소드는 객체 생성과 메소드 호출로만 구성되어야합니까?
내 친구가 나에게 가장 좋은 방법은 클래스 포함 main메서드의 이름을 지정 Main하고 main메서드 만 포함 해야한다고 말했습니다 . 또한 main메소드는 입력을 구문 분석하고 다른 오브젝트를 작성하고 다른 메소드를 호출해야합니다. Main클래스와 main방법은 다른 작업을 수행해서는 안된다. 기본적으로 그가 클래스를 포함하는 main메소드는 다음과 같아야합니다. public class Main { public static void main(String[] …

3
OO C 공개 및 개인 기능에 대한 일반적인 명명 규칙은 무엇입니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 짧은 질문 OO C 프로젝트의 'public'및 'private'멤버의 이름을 지정하는 일반적인 방법이 있습니까? 배경 저는 공개 및 비공개 …

3
OOP에서 클래스 디자인에 어떻게 접근합니까?
OO 솔루션을 디자인하려고 할 때 나는 일반적으로 클래스 이름 (명사), 그들이하는 것 (동사) 및 다른 클래스와의 협력 방식을 나열 하는 CRC 모델링을 사용합니다 . 이 블로그 에는이 명사-동사 접근법에 대해 다음과 같이 말할 수 있습니다. ...This approach, which I will call “noun and verb,” is so limited I’ll dare to …

5
공개 폐쇄 원칙의 이점을 활용하십니까?
OCP (Open-Closed Principal)는 개체가 확장을 위해 열려 있지만 수정을 위해 닫혀 있어야한다고 명시하고 있습니다. 나는 그것을 이해하고 SRP와 함께 사용하여 한 가지만 수행하는 클래스를 만듭니다. 그리고 일부 하위 클래스에서 확장되거나 재정의 될 수있는 메서드로 모든 동작 컨트롤을 추출 할 수있는 많은 작은 메서드를 만들려고합니다. 따라서 종속성 주입 및 구성, 이벤트, …

4
비 OOP 패러다임은 캡슐화와 같은 개념을 지원합니까?
객체 지향 프로그래밍에서 중요한 개념 중 하나는 캡슐화입니다. 그러나 최근 소프트웨어 세계는 함수형 프로그래밍과 같은 다른 패러다임을 선호하는 것처럼 보입니다. 캡슐화 및 기타 OOP 신조는 어떻습니까? 그들이 틀렸습니까? OOP가 잘못 적용 되었습니까? 예를 들어 Alan Kay는 OOPSLA'97 기조 연설에서 "객체 지향이라는 용어를 발명했으며 C ++을 염두에 두지 않았다고 말할 수 …

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