2008-10-10 4 views
0

저는 디자인 패턴에 대해 머리 글자를 쓰려고하고 있는데, 두 번째로는 패턴 문제에 대해 울부 짖는 것과 같은 문제에 대해 다시 생각해 보려고합니다.다형성과 상속 (예제 문제 예제)

계정 유형이 여러 개인 계정 시스템이 있습니다. 우리에게는 식당, 호텔, service_provider 및 소비자 계정 유형이 있습니다. 앞으로 더 많은 비즈니스 계정 유형이있을 것이며 물론 글로벌 관리자 계정이있을 것입니다.

그래서 내가 궁금한 것은 계정 유형을 전환하는 방법을 구현하는 것입니다. 예 : 각 계정에는 하나 이상의 프로필이 있지만 계정 유형에 따라 프로필이 달라집니다. 다형성 (polymorphism) 또는 상속 (inheritance)과 같은 여러 종류의 계정을 다루기 위해 어떤 종류의 클래스 관계를 사용해야합니까?

다른 프로파일이 확장해야하는 추상 기본 프로파일 클래스가 있어야하지만 프로파일 유형과 계정 유형 간의 조인 테이블과 같은 구현 방법을 모르겠습니다.

팩토리 패턴을 구현할 수있는 기회를 얻은 것 같아요. 어떻게해야 될지 잘 모르겠습니다.

어떤 아이디어로주세요?

* 

* 

몇 가지 예를 제공하기 위해 편집 제안 :

Account -> hasMany -> Users 

Account -> belongsTo -> AccountType 

Account -> hasOne -> Profile 

프로파일이이 계정의 유형에 따라 다른 입력 레스토랑의 예를 들어 계정은 와인을 메뉴를해야합니다 목록 등, 유형 호텔의 계정은 객실 유형, 편의 시설, 유형 소비자의 계정은 개인 취향, 모국 등이 있습니다.

질문은 이러한 관계를 가장 잘 구현할 수있는 디자인 패턴이었습니다.

희망 사항이 더 명확합니다.

+0

몇 가지 예제를 사용하여 편집 해보십시오. 설명에서 문제가 무엇인지 명확하지 않습니다. 두 개의 다른 것을 의미하기 위해 '계정'이라는 용어를 사용하는 것처럼 보입니다 –

+0

"프로필"은 무엇을 의미합니까? 그것은 "역할"또는 "이름 및 주소"와 비슷한 것입니까? – Sklivvz

답변

1

계좌와 프로필 간의 관계에 대해 상속보다는 집계를 제안하지만 여러 계정 유형으로 상속되는 계정 기본 클래스가 있습니다.

계정에는 각 다형성 계정 유형의 생성자에서 설정할 수있는 프로필 개체가 포함되어 있습니다.

계정 생성을 팩토리 또는 가상 생성자 패턴으로 래핑 할 수도 있습니다.

0

예를 들어 주셔서 감사합니다. 당신은 이것을 열심히 만드는 것을 시도하고 있을지도 모른다. 다음과 같이 작동합니까?

User <<--> Account 
Account <<--> AccountType 
Account <--> Profile 
Profile <<--> ProfileType 

나는 1 계정 프로파일 질문 : 1의 관계, 그것은 계정이 하나 개 이상의 프로파일을 끝낼 수, 또는 프로파일은 사용자가 아닌 계정에 속할 수 있습니다 것으로 보인다,하지만 난 돈 이 컨텍스트에서 프로필이 무엇인지/알지 못합니다.