2009-02-08 6 views
3

나는 이것에 대한 토론을 보았던 것을 기억하고 있으며 현재 작업중인 시스템의 모든 비즈니스 객체가 상속하는 기본 객체를 제거하는 것을 고려 중입니다. 여기에는 몇 가지 속성, 일부 데이터베이스 논리 및 일부 생성자 논리가 포함되어 있습니다.유비쿼터스 기반 객체가 안티 패턴을 가지고 있습니까?

반 패턴입니까, 아니면 여전히 배심원입니까? 상속받을 기본 계약을 갖는 것이 더 낳습니다. 각 오브젝트에서 일정한 양의 상용구 코딩이 필요합니다.

편집 : 나는 dsimcha 좋아해요과 문제에 잘 반영 느낌, 난 여전히 엄지 손가락의 표준 규칙은 사용자에게 유연성을 제공하기 위해 상속을 사용하는 것입니다 더 이상 답변

+0

나는 이것이 주로 당신의 상황에 달렸으며 누구의 선전에 관심이 있으리라고 생각합니다. – BobbyShaftoe

+0

진실로 여전히 논쟁의 느낌을 갖기 위해 노력하고 있습니다 – johnc

답변

2

을 듣고 행복 다른 클래스의 코드를 재사용하려면 composition을 사용하십시오. 그러나 Liskov Substitution Principle을 위반하지 않는 한 그것은별로 나쁘지 않을 것입니다. 보일러 플레이트를 작성하는 것은 본질적으로 나쁜 일이기도합니다. 실제 작업이 발생하는 곳의 코드 부분을 모호하게 만들고 반 드라이브라고합니다. Liskov Substitution Principle을 위반한다면 절대적으로 나쁜 생각입니다.

+0

매우 좋은 점 - Liskov는 인수 – johnc

1

진공 상태에서의 반 패턴은 없습니다. '이브 클래스'가 문제를 일으키고 있습니까? 그것을 제거함으로써 어떤 이점을 기대합니까? 실제 문제를 확인하는 데 도움이되는 경우에만 some standard list of anti-patterns에 있는지 여부를 묻는 것이 좋습니다.

+0

에있어 중요한 요인으로 떠오르고 있지만 문제가 무엇인지 이해하고 싶습니다. 알고있다. – johnc

2
나는 또한 I 발생할 수있는, 또는 당신이 다중 상속을 사용하는 경우 잠재적 인 문제가

알고 있어야 어떤 문제를 이해하고 싶은

: 서브 클래스는 다음 '이브'의 두 인스턴스를 상속 클래스 ... 그래서 C++은 소위 가상 상속을 지원합니다.

자주 사용하는 관용구입니다. 예를 들어 .Net의 모든 것은 System.Object ...에서 파생됩니다. 그리고/또는 모든 COM 개체는 IQueryInterface 인터페이스를 구현합니다.