一、什么时候需要使用工厂模式?
1.用new去创建一个对象(因为new的过程可能还需要做一些初始化工作)的过程很复杂,但是又有很多地方要用这个对象;
2.随着项目的深入,一个类可能派生出很多个子类,这样在修改代码时问题就会很多。
二、使用工厂模式的作用是什么?
工厂模式主要是为创建对象提供过渡接口。
其一:将创建实例(new一个对象)的工作和使用实例(一些初始化)的工作分开;简单地说,就是让创建实例所需要的大量初始化工作从类的构造函数中分离出去。
其二:将类的实例化推迟到子类;简单地说,就是实例化父类时系统会根据情况选择实例化哪个子类。
三、如何实现工厂模式(工厂类)?
第一:创建纯虚类;
第二:子类继承纯虚类,并实现方法;
第三:创建工厂类,并由工厂类去管理这些子类的实例化。
四、如何使用工厂模式?
首先new Factory,完了直接调用Factoty的创建对象方法。
五、设计实例
class Sample{
public virtual void Show() = 0;
}
class SampleA : public Sample{
public void Show(){
.............................
}
}
class SampleB : public Sample{
public void show(){
.............................................
}
}
public class Factory{
public static Sample creator(int which){
if(which == 1) return new SampleA();
else if(which == 2) return new SampleB();
}
}
单例模式和工厂模式都是通过方法来得到对象的实例,只不过单例模式返回的只是一个唯一的实例而已。
后续做个计划:将分析结构型模式中的桥梁模式、代理模式,以及行为模式中的观察者模式。