Template模式下,存在一一对应的关系,存在一个MyA就有一个MyB。有没有一对多方式,采用Strategy模式。
class MyA : public A
class A
{
public:
A(B* b);
private:
B* _b;
}
A::A(B* b)
{
_b=b;
}
class B
{
public:
virtual void bfunc();
}
class MyB1 : public B
class MyB2 : public B
......
class MyB9 : public B
int main()
{
MyB1* mb1;
MyB2* mb2;
MyA* aexa(mb1).bfunc();
MyA* aexa(mb2).bfunc();
}
本文探讨了在软件设计中如何使用Strategy模式实现一对多的关系,通过具体的类定义和实例演示了MyA类可以与多个不同的MyB子类配合工作,展示了比Template模式更灵活的设计方式。
484

被折叠的 条评论
为什么被折叠?



