设计模式分为三大类:
创建型模式,共五种:工厂方法模式,抽象工厂模式,单例模式,创建者模式,原型模式
结构型模式,共七种: 适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式
行为型模式,共十一种:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式
1.1简单工厂模式:比如说我们想创建一个披萨,可以用一个工厂类来创建不同类型的披萨类型,也就是根据条件来创建不同的披萨子类。但是问题在于,如果我们想新增一种披萨类型的话,就需要对这个工厂类进行修改(比如说增加条件判断的分支)
问题:这就违反了开闭原则。于是有了工厂模式
1.2工厂模式:每一个披萨类型可以对应一个工厂,比如我们有纽约披萨,伦敦披萨,用这些子类去继承披萨类然后重写创建披萨的方法,可以创建出不同的披萨(不同的产地),这样如果我们有新增的话,就可以直接去新增一个新的工厂类(比如创新一个新的北京披萨的子类)。解决了简单工厂模式需要去对工厂类进行修改的问题。
简单工厂模式只有一个工厂类,去创建所有东西,工厂模式可以有很多个工厂类,每一个工厂类对应者一个产品。
问题:客户如果想要纽约披萨,就需要创建一个纽约工厂,想要伦敦披萨,就需要创建一个伦敦工厂。所以当工厂类发生变化的时