나는 소매 업체를위한 시스템을 설계하는 시나리오를 가지고 있습니다. 이것은 적절한 라이브 어플리케이션이 아니라 내 OO 설계 기술이 올바른지 여부와 올바르게 생각하는지 여부를 확인하는 시나리오입니다. 나는 아직도 여기에서 배우고있다. 나는 C#에서 이것을하고있다.OOP 디자인이 맞습니까?
고정 제품을 판매하는 소매 업체는 공급 업체의 그의 다양한 고정 번호에서 최고의 가격을 선택하고 해당 공급 업체에서 주문을하는 시스템을 설계하고 싶어 :
시나리오
이있다. 간단히하기 위해 고정 된 제품을 같은 회사의 XYZ 펜 한 제품으로 잘라 냈습니다. 각 공급 업체는 질문을 받으면 XYZ 펜에 대한 견적을 제공하고 소매 업체 시스템은 다양한 판매자로부터 최상의 가격을 선택하고 해당 판매자의 주문을합니다.접근 1 :
- 공급 업체에 대한 추상 클래스와 각 공급 업체에 대한 구현을 작성합니다.
- 각 공급자 구현에는 PlaceOrder() 메서드와 cost 속성이 있습니다.
- DataLayer는 각 공급자 구현에 대한 cost 속성을 설정합니다.
- 각 구현을 최적의 가격으로 평가하고 적절한 구현에 대한 주문을하는 CheckBestRetailer 클래스를 만듭니다.
접근법 2 :
- 는 비용 속성과 PlaceOrder() 메소드 유형 공급 업체의 목록을 만듭니다.
- 각 공급 업체에 대해 데이터 계층은 새로운 공급 업체 유형을 목록에 추가하고 데이터베이스에서 가져온 비용 세부 정보를 설정합니다.
- CheckBestRetailer 클래스는 해당 목록을 반복하며 각 객체에 대해 가장 적합한 가격을 평가하고 해당 구현에 대한 주문을합니다.
위의 두 가지 중에서 접근 방식 1은 OOP에 더 가깝지만 공급 업체 수가 고정되어 있다고 생각합니다. 공급 업체의 수가 데이터베이스에서 검색된 데이터에 따라 변경 될 수있는 경우 접근 방식 2가 더 좋습니다.
당신은 어떻게 생각하십니까?
여기 내 OOAD 테스트를위한 최상의 시나리오가 없을 수 있습니다. 가능하다면 디자인 힌트와 함께 작업 할 수있는 몇 가지 샘플 시나리오를 갖고 싶습니다.
감사합니다.
빌어 먹을 당신은 내가 할인 등을 제공하는 일부 공급 업체와 같은 새로운 복잡성을 소개하면 안 무엇 : –
에 날 이길. 그럼 어느 것이 더 나아 졌습니까? – user20358
데코레이터를 사용하여 특정 클래스에 더 많은 비헤이비어를 추가 할 수 있습니다. 많은 옵션이 있습니다. 지금은 어떤 문제를 해결해야하는지에 따라 다릅니다. 할인이 모든 공급 업체에 적용될 수 있다면 여전히 유용 할 것입니다. 옵션 2와 단 하나의 .. 만약 당신이 그들이 일어날 것임을 알 때까지 미래의 요구 사항에 대해 생각하는 당신의 디자인을 복잡하게하려고하지 마십시오 –