当前位置:  开发笔记 > 编程语言 > 正文

抽象基类的设计问题?

如何解决《抽象基类的设计问题?》经验,为你挑选了1个好方法。

有一个界面

class abc {

public:
virtual int foo() = 0;  
...

}

class concrete1: public abc { 

public:
int foo() { 

..
}


class concrete2 : public abc {

public:
int foo() {

..
}


}

现在在我的主程序中,我需要根据变量的值构造类

abc *a;
if (var == 1)
   a = new concrete1();
else
   a = new concrete2();

显然我不希望程序中到处都是这两行(请注意我已经简化了这里以便事情清楚).如果有的话,我应该使用什么设计模式?



1> Johannes Sch..:

您正在寻找http://en.wikipedia.org/wiki/Factory_method_pattern

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有