代码之家  ›  专栏  ›  技术社区  ›  Kadir Erdem Demir

仅用于代理目的的组合对象涉及哪种设计模式?

  •  0
  • Kadir Erdem Demir  · 技术社区  · 7 年前

    我的对象D封装了不同的结构(本例中为A、B、C)。D主要用于作为参数传递给名为“RealClientInterface”的对象。因为D由A、B、C组成,“RealClientInterface”需要运行它的函数。

    我的问题是D是否与设计模式有关?如果有,在这种情况下,哪种设计模式D相关?

    因为它是由a、B、C组成的,所以它是作曲家吗? 还是代理或生成器?因为它只是一个代理,所以真正的读/写操作是由RealClientInterface完成的?

    我需要这些信息,以便给我的D类起一个好名字,并用于文档编制。

    struct A
    {
        //Some data
    };
    
    struct B 
    {
        //Some data
    };
    
    struct C 
    {
        //Some data
    };
    
    struct D 
    {
       A a;
       B b; 
       C c;
    };
    
    struct RealClientInterface
    {
        void foo ( D& d )
        {
            //reads d.a and inserts d.b
        }
    
        void foo2 ( D& d )
        {
            //reads d.c and inserts d.b and d.c
        }
    
        // Many other functions
    } ; 
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   stefaanv    7 年前

    无论出于何种原因,包含其他类的类都不是常见的设计模式,它只是一个组合,这是一个概念,意味着包含其他类的类。该类还可以包含对其他类的引用(聚合),也可以继承。你可以找到关于构图的更多信息 here

    您可以找到 overview of common design patterns on Wikipedia ,但我不认为这个在里面。

        2
  •  0
  •   Sheila de Pope    7 年前

    不,D与任何设计模式都无关。在您的示例中,D只是分别用于a、b和c类型的对象a、b和c的容器。”“容器”是您文档中使用的合适名称。

        3
  •  0
  •   Krzysztof Błażełek    7 年前

    不,在当前形式下,这看起来不像任何设计模式,但是

    • 如果D将控制对A、B、C的访问权=>代理模式
    • 如果D将简化A、B、C的接口=>外观设计模式