2011-09-13 3 views
5

[this post]에서 @jonp가 제시하는대로 상태 패턴을 구현하는 데 어려움을 겪고 있습니다. 나는 그가 게시 한 것을 사용하는 방법을 꽤 얻지는 못했지만, 둥근 구멍에 사각형의 못을 끼워 넣으려는 생각이 들었다. 그래서 내 질문 :모델링 "나는 * *이지만 **도 있습니다."

내가 여러 역할을 재생할 수 있습니다 내 사이트 방문자가있는 경우, 즉 User 내가 상속을 사용한다, 위의 Advertiser, 또는 모든 Vendor, Employer 될 수 있을까? 나는 선언했습니다

class Vendor : User {} 
class Advertiser : User {} 

등등하지만 사용자가 다음 다른 클래스의 인스턴스가 정말 동일한 기본 객체를 가리 공급 업체와 고용주 모두 때 ... 나는이 작업을 할 수 있습니다 모르겠어요. 어떻게 모델링합니까?

* 갱신 *

모두 감사합니다 (당신이 모든 점을 (그것이 내가 줄 수있는 모든)의 수). 나는 지난 몇 일 동안 EF, 다운 캐스팅 및 주 패턴으로 깊은 사본을 통해 내 머리카락을 꺼내 ​​왔습니다. 역할 접근 방식은 훨씬 더 의미가 있습니다.

서로 다른 역할 예를 들어 다형성과 추상 메소드를 사용하여 구현 될 수 서로 다른 논리를 포함 할 수있는 경우는 상속 이상 구성을 선호한다
+2

아마 C++에서 임의의 상속을 가진 언어로 관심을 가질 수 있습니까? ;-) –

+0

@Kerrek C++은 데이터베이스에서 읽은 내용을 기반으로 역동적 인 역할 집합을 상속하는 고유 한 사용자 하위 유형을 동적으로 만드는 데 많은 도움을주지 않습니다. –

답변