一个仅用于代理目的的组合对象的设计模式是什么?

时间:2018-03-30 13:39:52

标签: c++ oop design-patterns

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

我的问题是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 个答案:

答案 0 :(得分:1)

由于某种原因包含其他类的类不是熟悉的设计模式,它只是一个组合,这是一个概念,意味着包含其他类的类。该类还可以包含对其他类(聚合)的引用,或者它可以继承。您可以找到有关撰写here的更多信息。

你可以找到overview of common design patterns on Wikipedia,但我不认为这是在那里。

答案 1 :(得分:0)

不,D与任何设计模式无关。在您的情况下,D只是A,B和C类型的对象a,b和c的容器。 “容器”将是您在文档中使用的合适名称。

答案 2 :(得分:0)

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

  • 如果D将控制对A,B,C =>的访问;代理模式
  • 如果D将简化A,B,C =>的界面。立面图案
相关问题