返回信息流最近搞开发经常见到这种设计模式,感觉很好用。特点如下,在逻辑上,B类是A类的一个组成部分,A类包含B类,还包含C类、D类等等。例如A类是汽车类,B类是发动机类,C类是轮胎类。。。总之A类逻辑上包含B类。
类设计是这样的,B类对象指针m_pB是A类的一个数据成员。而A类的对象指针 m_pA也是B类的一个数据成员,这样做是为了更好地通过B类的函数直接对A类操作,更好地为A类服务。
初始化的时候,A类函数A::init()中,将自己的this指针通过B类函数init,将自己的指针赋值给m_pA。
class A
{
....
B* m_pB;
}
void A::init()
{
.......
m_pB = new B();
m_pB.init(this);
}
class B
{
......
A* m_pA;
}
void B::init(A* pA)
{
.....
m_pA = pA;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #41665同步于 2010/7/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
大家知道这种设计模式叫什么名字么?
ilovelife
2010/7/22镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
唔。。不懂
【 在 ilovelife (王牌程序员) 的大作中提到: 】
: 最近搞开发经常见到这种设计模式。特点如下,在逻辑上,B类是A类的一个组成部分,A类包含B类,还包含C类、D类等等。
: 类设计是这样的,B类对象指针m_pB是A类的一个数据成员。而A类的对象指针 m_pA也是B类的一个数据成员,这样做是为了更好地通过B类的函数直接对A类操作,更好地为A类服务。
: 初始化的时候,A类函数A::init()中,将自己的this指针通过B类函数init,将自己的指针赋值给m_pA。
: ...................
【 在 ilovelife 的大作中提到: 】
:
: 最近搞开发经常见到这种设计模式,感觉很好用。特点如下,在逻辑上,B类是A类的一个组成部分,A类包含B类,还包含C类、D类等等。例如A类是汽车类,B类是发动机类,C类是轮胎类。。。总之A类逻辑上包含B类。
: 类设计是这样的,B类对象指针m_pB是A类的一个数据成员。而A类的对象指针 m_pA也是B类的一个数据成员,这样做是为了更好地通过B类的函数直接对A类操作,更好地为A类服务。
: ...................
类的组合, 用来的进行类的复用
是设计模式中总结的常用模式的哪一种?
类的组合是指:类中的成员数据是另一个类的对象。通过类的组合可以在已有的抽象的基础上实现更复杂的抽象。
这里也是类的组合,而且A中有B,B中有A,需要的是设计模式的名称
【 在 jmpesp 的大作中提到: 】
: 类的组合, 用来的进行类的复用