장점

2009-12-15 4 views
1


장점

1) 내가 알고 있어요 마찬가지로 지금까지, BLL 계층에서 각 도메인 객체 인스턴스()가 완전하게 표현해야한다 도메인 요소 (직원, 책, 자동차 등).


그래서 도메인 개체의 두 가지 유형을 갖는 장점이 무엇인지, 그 포럼에 스레드 (들)을 나타내는 특정 포럼과 다른 형태를 나타내는 하나 개의 유형을 나타내는 단일 도메인 개체 유형을 가진 이상 말을 이 포럼 안에는 포럼과 스레드가 둘 다 있습니까?

또 다른 예 : 자동차와 자동차를 모두 나타내는 단일 유형의 도메인 객체 대신 두 가지 유형의 도메인 객체 (하나는 자동차의 인스턴스를 나타내고 다른 하나는 버스의 인스턴스를 나타냄)의 이점은 무엇입니까? 버스?


2) 도메인 객체 인스턴스는 항상 특정 유형의 개별 항목을 나타내는 경우, 또는 그들은 또한 동일한 유형의 항목 그룹을 대표 할 수 있습니까? 예를 들어 단일 개체 인스턴스가 단일 직원이 아닌 직원 그룹을 나타내야하는 상황이 있습니까?


고맙습니다

답변

1

좋은 이유 두 가지를 사용 여러 도메인 객체는 다음과 같이 더 나은 핸들 코드입니다 :

if (o.VehicleType == VechileType.Car) 
    DoSomthing(); 
else if (o.VehicleType == VechileType.Bus) 
    DoSomethingElse(); 

이 조건문은 시스템의 주위에 자신을 복제하는 방법이 있고 때마다 그들은 미묘하게 다를 수 있습니다. 자동차/버스를 표현하기 위해 다른 유형을 사용하면 모든 논리가 더 좋은 곳으로 바뀝니다. 이와 같은 논리를 보지 못한다면 여러 유형의 복잡성에 신경 쓰지 않아도됩니다.

이 기사에는 replace conditional with polymorphism 리펙토링의 좋은 예가 있습니다.

+0

A) 복수 도메인 객체를 사용하는 가장 큰 이유 중 하나가 있습니까? B) "자동차/버스를 표현하는 데 다른 유형을 사용하면 모든 논리가 더 나은 곳으로 바뀝니다."- "논리가 더 나은 곳"이라는 것이 정확히 무엇인지 알 수 없습니까? – carewithl

+1

이에 대한 좋은 토론과 함께 기사에 대한 참조를 추가했습니다. –

+0

도와 주셔서 감사합니다. – carewithl

1

(1)에 응답하려면 : 이것은 당신이 계속해야 판단 호출입니다. 서로 다른 두 가지 유형이 더 비슷합니까? 때때로 그것은 어느쪽으로 든 갈 수 있고, 두 명의 훌륭한 프로그래머가 다르게 결정할 수 있습니다. inheritance을 염두에 두십시오. 두 가지 장점을 모두 활용하는 방법 : 필요한 모든 개인주의로 중앙에서 구성된 공통 기능. 이것은 oop/d의 중심입니다.

(당신도 결국 single responsibility principal에 의해 구동, 여러 객체간에 도메인 항목 표현을 분할 수도 있지만, 내가 처음에 걱정하지 않을 것이다. 하나 개의 도메인 항목에 대한 하나 개의 클래스가 시작하기에 좋은 장소입니다 매우입니다

답하려면 2 : 예, 도메인 개체는 개별 항목뿐만 아니라 항목 그룹을 나타내는 경우가 많습니다. 종종 자동차 개체와 자동차 개체 (collection 개체)를 모두 갖게됩니다.

+0

도와 주셔서 감사합니다. – carewithl