简单工厂模式
工厂角色:根据传入参数选择创建具体产品角色
抽象产品角色:作为基类负责描述接口
具体产品角色:继承基类负责实现接口
工厂方法模式
区别于简单工厂,工厂方法指 把工厂角色抽象化实现具体交给其子类 ,一个具体工厂实现一个对应的具体产品
抽象工厂模式
产品等级结构:如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类
产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如海尔电器工厂生产的海尔电视机、海尔电冰箱,海尔电视机位于电视机产品等级结构中,海尔电冰箱位于电冰箱产品等级结构中
区别于工厂方法模式,抽象工厂模式一个具体工厂可以构造多个不同产品等级结构的具体产品
建造者模式
抽象建造者 具体建造者 指挥者 产品角色
具体建造者实现了一个 ’完整的产品(可能由多个具体产品组成)’ 后返回当前建造者给指挥者,指挥者根据consturct() 使用对应具体产品角色,不同的建造者可能构造出不同的产品族
单例模式
确保一个类在全局只有一个实例化的对象