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 都公开了很多看起来相似的方法(还有一些是 Role)。例如,获取用户 ID 如下所示:

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

有人可以“说明”在这种情况下子类化应该如何工作以达到我正在寻找的效果?

提前致谢。

4

1 回答 1

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);
    }
}
于 2010-03-22T19:11:51.900 回答