摘要:
工厂模式的话一般多写个工厂类,客户端代码多引用一个工厂类。如果用基类的静态函数实现这个工厂类的话,工厂类就不必要了。比如A是基类,B,C是它的子类。可以这样写:in A.H:class A { static A* factoryMethod(int category);};in A.C:A* A::factoryMethod(int category) { if(category == 1) { return new B(); } else { return new C(); }}这样客户端只要调用A::factoryMethod(...)就... 阅读全文