문제

나는 이것에 대한 논쟁을 본 것을 기억하며 현재 내가 작업중 인 시스템에서 모든 비즈니스 개체가 상속하는 기본 개체를 제거하는 것을 고려하고 있습니다. 여기에는 몇 가지 속성, 일부 데이터베이스 로직 및 일부 생성자 로직이 포함되어 있습니다.

이것은 반 패턴입니까, 아니면 배심원이 여전히 나가는가? 각 객체에서 일정량의 보일러 플레이트 코딩을 수행 해야하는 기본 계약을 상속받는 것이 더 낫습니까?

편집하다: 나는 dsimcha를 좋아하고 그것이 문제에 대해 잘 반영된다고 느낀다. 나는 여전히 더 이상의 답변을 듣고 기쁘다.

도움이 되었습니까?

해결책

표준 규칙은 상속을 사용하여 다형성을 통한 클래스 사용자에게 유연성을 제공하고 다른 클래스에서 코드를 재사용하려는 경우 구성을 사용하는 것입니다. 그러나 당신이 위반하지 않는 한 Liskov 대체 원리 아마도 나쁘지 않을 것입니다. 수많은 보일러 플레이트를 쓰는 것도 본질적으로 나쁜 일입니다. 실제 행동이 일어나고있는 코드의 일부를 가리기 때문에 나쁘기 때문입니다. 그래도 Liskov 대체 원칙을 위반한다면 절대적으로 이것은 나쁜 생각입니다.

다른 팁

나는 또한 내가 어떤 문제에 직면 할 수 있는지 이해하고 싶거나 알아야합니다.

잠재적 인 문제는 여러 상속을 사용하는 경우 : 서브 클래스가 'Eve'클래스의 두 인스턴스를 상속하는 것입니다. 그래서 C ++는 소위 가상 상속을 지원하는 이유입니다.

그것은 자주 사용되는 관용구입니다. 예를 들어 .NET에서 모든 것이 파생됩니다. System.Object ... 및/또는 모든 COM 객체는 iQueryInterface 인터페이스를 구현합니다.

진공 상태에서 방지 된 것은 없습니다. 당신의 '이브 클래스'가 당신에게 문제를 일으키고 있습니까? 제거함으로써 어떤 이점을 실현할 것으로 예상됩니까? 그것이 켜져 있는지 묻습니다 방지 방지의 일부 표준 목록 실제 문제를 식별하는 데 도움이되는 경우에만 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top