2010-03-22 51 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都暴露了很多類似的方法(以及一些角色)。例如,獲取用戶的ID看起來像:

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

有人可以「說明」如何子類應該在這種情況下工作,以達到我期待的效果?

在此先感謝。

回答

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); 
    } 
}