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


} 

Теперь, как я хотел бы подклассы свои методы на три категории: Роль, профиля и членов. Это будет проще для глаз разработчиков, потому что и профиль, и членство выставляют множество методов, которые выглядят одинаково (и несколько по ролям). Например, получить идентификатор пользователя будет выглядеть так:

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