OOP 전문가를 위한 질문입니다. - 페이지 43

 
Andrey Barinov :

피터, 추천합니다

https://en.wikipedia.org/wiki/Code_Complete

고맙습니다. 구해서 읽어봐야겠습니다.
 
Artyom Trishkin :
베드로. 그러므로 내가 또한 말하노니 - 생각 없는 상속은 필요하지 아니하니이다. 명확한 구분 및 분류.

예를 들어 보겠습니다.

범주 "과일" - 기본 개체.

클래스 - "과일", "야채"- "과일" 클래스의 상속인.

"Fruit" 클래스는 Kiwi, Mango, Lemon, Orange 클래스의 부모입니다.

"감귤류"라는 새 범주가 나타납니다.

"Fruit" 클래스와 해당 상속인(키위, 망고, 레몬 및 오렌지) 사이에 배치합니다.

"Citrus"는 레몬과 오렌지의 부모입니다.


다음으로, - 우리는 망고와 레몬을 교차시키고 - Li-Mango 객체를 얻습니다.

개체는 부분적으로 감귤류 및 부분적으로 - 비감귤류의 속성을 포함합니다. 두 개의 부모가 있으며 이 계층을 최적화하는 것은 불가능합니다.

따라서 "Lee-Mango" 개체의 다중 상속과 기본 개체 "Fruit"에 대한 이중 경로(감귤류 체인 및 "Mango" 체인을 통해)를 얻습니다.

이러한 사슬에서 우리는 "Lee-Mango"의 개성을 보존하기 위해 부모의 추가 속성을 우회해야 합니다.

 

Peter, 이것은 호출됩니다. 과제를 구체화하고 그에 대한 수업을 만드는 것이 필요합니다.

중급 "감귤류"를 도입하는 이유는 무엇입니까? 동적 목록에 "감귤류" 속성을 추가하는 것만으로 문제가 해결될 수도 있습니다.

 
Dmitry Fedoseev :

Peter, 이것은 호출됩니다. 과제를 구체화하고 그에 대한 수업을 만드는 것이 필요합니다.

중급 "감귤류"를 도입하는 이유는 무엇입니까? 동적 목록에 "감귤류" 속성을 추가하는 것만으로 문제가 해결될 수도 있습니다.

속성에 대해 쓰고 싶었습니다.
맛 속성은 두 과일 속성의 평균입니다.
 

이. OOP는 데이터 작업 수단(올바른 분할 방법)이 아니라 모두 동일한 프로그래밍 도구입니다. 데이터 조작 도구는 데이터베이스입니다.

세 테이블. 하나의 테이블에는 두 개의 열이 있습니다: 과일 ID와 이름. 다른 하나에는 속성의 id와 이름이라는 두 개의 열이 있습니다. 세 번째 열에는 과일 ID, 속성 ID의 두 열이 있습니다.

결과적으로 새로운 속성을 끝없이 추가하고 과일에 할당하여 새로운 과일을 얻을 수 있습니다.

문제를 해결하는 수단은 문제와 일치해야 합니다.

 
Dmitry Fedoseev :

Peter, 이것은 호출됩니다. 과제를 구체화하고 그에 대한 수업을 만드는 것이 필요합니다.

중급 "감귤류"를 도입하는 이유는 무엇입니까? 동적 목록에 "감귤류" 속성을 추가하는 것만으로 문제가 해결될 수도 있습니다.

순리에 맡기다.

그러나 두 개체의 속성을 교차하여 새 개체를 생성하는 것은 어떻습니까? 새 개체는 다른 두 개체의 속성을 부분적으로 상속합니다.

여러 개체(부모)와 기본 개체 간에 "부분" 상속을 구현하는 방법은 무엇입니까?

 
Реter Konow :

순리에 맡기다.

그러나 두 개체의 속성을 교차하여 새 개체를 생성하는 것은 어떻습니까? 새 개체는 다른 두 개체의 속성을 부분적으로 상속합니다.

다른 여러 개체에서 "부분" 상속을 구현하는 방법은 무엇입니까?

이 특정 문제를 해결하기 위해 적절한 알고리즘 을 적용합니다.

OOP는 어떤 관점에서 서로 어떻게 대응하든지 간에 주변 세계를 설명하는 수단이 아닌 프로그래밍 도구입니다.

 
Dmitry Fedoseev :

이. OOP는 데이터 작업 수단(올바른 분할 방법)이 아니라 모두 동일한 프로그래밍 도구입니다. 데이터 조작 도구는 데이터베이스입니다.

세 테이블. 하나의 테이블에는 두 개의 열이 있습니다: 과일 ID와 이름. 다른 하나에는 속성의 id와 이름이라는 두 개의 열이 있습니다. 세 번째 열에는 과일 ID, 속성 ID의 두 열이 있습니다.

결과적으로 새로운 속성을 끝없이 추가하고 과일에 할당하여 새로운 과일을 얻을 수 있습니다.

문제를 해결하는 수단은 문제와 일치해야 합니다.

그것은 재산에 관한 것이 아니라 상속에 관한 것입니다. 즉 - 개체 간의 속성 및 메서드 분포입니다.

새 개체는 이전 개체의 속성을 서로 다른 조합으로 연결하므로 기본 개체에 대한 체인의 복잡성이 증가합니다.

 
Реter Konow :

그것은 재산에 관한 것이 아니라 상속에 관한 것입니다. 즉 - 개체 간의 속성 및 메서드 분포입니다.

새 개체는 이전 개체의 속성을 서로 다른 조합으로 연결하므로 기본 개체에 대한 체인의 복잡성이 증가합니다.

개체 자체는 이 작업을 수행하지 않습니다. 데이터베이스에서 이 과일의 속성, 다른 과일의 속성을 선택하고 결합(무언가 남기고 버리기) - 새로운 과일을 얻음 - 데이터베이스에 추가합니다.

 
자연에도 속성 조합에 대한 무한한 가능성 이 있는 것은 아닙니다. 특정 수의 염색체가 있으며 속성 집합을 제한합니다.