2010-03-22 4 views
1

C# 프로그램에 외관 디자인 패턴을 사용하고 있습니다. 역할, 프로필 및 회원 : 나는 세 가지 범주로 내 방법을 하위 클래스로 원하는만큼이 프로그램은 기본적으로 은 지금 ...이 같은외관 디자인 패턴 및 하위 클래스 구성

public class Api 
    { 
     #region Constants 

     private const int version = 1; 

     #endregion 


     #region Private Data 

     private XProfile _profile; 
     private XMembership _membership; 
     private XRoles _role; 

     #endregion Private Data 


     public Api() 
     { 
      _membership = new XMembership(); 
      _profile = new XProfile(); 
      _role = new XRoles(); 

     } 

     public int GetUserId(string name) 
     { 
      return _membership.GetIdByName(name); 
     } 


} 

보인다. Profile과 Membership 모두 비슷한 방법 (그리고 역할별로)이 많이 표시되기 때문에 개발자의 눈에는 더 쉬울 것입니다.

int _id = Namespace.Api.Member.GetUserId("Henry222"); 

누군가가 "설명"할 수 내가 찾고 있어요 효과를 달성하기 위해,이 경우에는 어떻게 서브 클래 싱을 작동합니다 : 예를 들어, 사용자의 ID를 얻는 것은 같을 것이다?

미리 감사드립니다.

답변

2

나는 당신이 당신의 질문의 맥락에서 "내부 계급"을 의미 할 수도 있다고 주장 할 것이다. 다음과 같이 시도해보십시오.

public class Api 
{ 
    public class MemberApi 
    { 
     private readonly Api _parent; 

     internal MemberApi(Api parent) { _parent = parent; } 

     public int GetUserId(string name) 
     { 
     return _parent._membership.GetIdByName(name); 
     } 
    } 

    #region Constants 

    private const int version = 1; 

    #endregion 


    #region Private Data 

    private XProfile _profile; 
    private XMembership _membership; 
    private XRoles _role; 

    public MemberApi { get; private set; } 

    #endregion Private Data 

    public Api() 
    { 
     _membership = new XMembership(); 
     _profile = new XProfile(); 
     _role = new XRoles(); 

     Member = new MemberApi(this); 
    } 
}