2014-05-25 4 views
0

저는 사용자가 부동산 속성을 찾을 수있게 해주는 앱을 모델링하고 있습니다. 따라서 사용자가 집, 아파트, 성, 부지, 상점, 주차장, 사무실에서 임대 및 판매를 찾을 수있는 웹 사이트가 될 것입니다. 그것에 따르면, 나는 클래스 다이어그램에서 망설이다. RealEstateProperty 클래스의 모든 부동산 유형을 일반화해야합니까? 아니면 TypeOfRealEstate 클래스와 연관시켜야합니다. 예를 들어 "Ground"유형은 부동산 자산 일 수 있다는 것을 알고 있어야합니다. 집이나 성 같은 속성. 또한 주차 공간은 집의 주차뿐만 아니라 부동산 일 수 있습니다.개념화 : 일반화 여부

누구나 가장 좋은 방법은 무엇입니까? 미리 감사드립니다.

+0

[GenMyModel] (http://www.genmymodel.com/)과 같은 두 가지 디자인을 그려서 여기에 게시하여 더 좋은 아이디어를 얻으십시오. ( – xmojmr

답변

1

의 시스템이 구현해야하는 RealEstates가 무엇인지에 따라 다릅니다. 클래스의 특징에는 속성, 메소드 및 연결이 포함됩니다.

  1. 모든 잠재적 인 RealEstates는 예를 들어 ID를 들어, 동일한 기능이있는 경우, , 가격, 날짜와 responible 에이전트, 당신은 관련 유형보다, 그 (것)들의 사이에서 differenciate firther 할 필요가 없습니다 유형의 것 일해라. RealEstateType을 열거 형 (또는 새로운 유형을 추가 할 예정인 경우)으로 모델링하고 단일 RealEstate 클래스에 연결합니다.

  2. 또 다른 극단적 인 상황에서 다른 기능이 필요한 경우 기본 추상 클래스에서 상속해야합니다. 예를 들어, Ground에는 속성 "area"가 있고 건물에는 "number of floors"가 있습니다. 방법조차도 다를 수 있습니다.

예를 들어, Ground to House를 연결하고 싶습니다. 이것은 두 번째 버전에서 훨씬 깨끗합니다. Ground와 House 클래스 간의 연관성 만 있습니다. 하나의 클래스 버전에서는 RealEstate를 링크하고 spacial restrictopns를 추가해야합니다 (매우 "못생긴"디자인).

요약하면, 다른 RealEstates의 기능에 대해 생각하고 그 차이에 따라 RealEstate 계층 구조 을하려고합니다.

단일 클래스 또는 수십 개의 클래스로 끝날 수 있습니다. :)이 계층 구조를 가능한 한 단순하게 유지 (클래스는 적음)하지만 서로 다른 기능을 명확하게 표시하기에 충분해야합니다.

+0

) 답변 해 주셔서 감사합니다.) –