一、创建型模式(5种)
1、工厂方法模式
同一类产品的生产
2、抽象工厂模式
将同一个具体工厂所生产的位于不同等级的一组产品称为产品族,例如(衣服+鞋子+帽子)
同一级别
3、单例模式
4、建造者模式
建造者和指挥者
将一个复杂对象的构建(生产工厂,负责蓝图和具体的设计)与表示(组装工厂,负责具体开始组装)分离,使得同样的构建过程可以创建不同的表示。
解耦合,不同的组件可以建造不一样的整体。例如一台电脑需要很多零件,我们可以使用零件来创造一台电脑,由于解耦合,例如我们可以修改主板,这样就能装出不一样的主机。实现了构建算法、装配算法的解耦
分离了部件的构造(由Builder负责)和装配(由Director负责)。
有四个角色:
- 抽象建造者类(Builder):这个接口规定要实现复杂对象哪些部分的创建,不涉及具体部件对象的创建(蓝图)
- 具体建造类(ConcreateBuilder):实现Builder接口,完成复杂产品的各个部件的具体建造方法。
- 产品类:要创建的复杂对象
- 指挥者类(Director):调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证各个对象完整地创建或某种顺序创建
5、原型模式
用一个已经创建的instance作为原型,通过复制该对象来创建一个和原型对象相同的新对象
- 抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。
- 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。
- 访问类:使用具体原型类中的 clone() 方法来复制新的对象
方法:
- 使用cloneable接口,里面只有一个clone方法
- 需要克隆(复制)的类实现这个接口
- 这个类重写clone方法,clone方法里return new Objcet(this)
原型模式的克隆分为浅克隆和深克隆:
浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型(如引用)属性,仍指向原有属性所指向对象的内存地址。
深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址
- 结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。这些模式关注如何将类或对象组合在一起形成更大的结构,以提供新的功能或优化现有的功能。
- 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。这些模式关注类和对象之间的交互方式,以及如何分配责任和算法来实现特定的业务逻辑。