文章目录
一、创建型模式
1、工厂模式
工厂方法模式:对不同的输入参数返回不同的对象实例。
抽象工厂模式:是一组工厂方法,其中的每个工厂方法负责产生不同种类的对象。类FrogWorld是抽象工厂,Frog青蛙和Bug障碍物是工厂方法,通过输入不同name来创建不同对象实例
2、建造者模式
用于创建一个由多个部分构成的对象。该模式将一个复杂对象的构造过程与其表现分离,同一个构造过程可用于多个不同的表现。
指挥者和建造者
3、原型模式
创建对象的克隆。即接受一个对象作为输入参数,返回输入对象的一个副本。可用copy.deepcopy()。
二、结构型模式
1、适配器模式
实现两个不兼容接口之间的兼容。开放封闭原则(对扩展开放对修改封闭)
2、修饰器模式
动态地扩展一个对象的功能。
3、外观模式
在已有系统之上实现一个抽象层,隐藏系统内部的复杂性,不暴露给客户端。
4、享元模式
通过为相似对象引入数据共享来最小化内存,优化性能和内存。一个享元就是一个包含状态独立的不可变数据的共享对象。
5、模型-视图-控制器模式(MVC模式)
分层设计(数据访问层、业务逻辑层和表示层)
6、代理模式
使用代理对象在访问实际对象之前执行重要操作。
4种知名代理类型:
- 远程代理:实际存在与不同地址空间的对象在本地的代理者。
- 虚拟代理:用于懒初始化,将一个大计算量对象的创建延迟到真正需要的时候继续。
- 保护/防护代理:控制对敏感对象的访问。
- 智能(引用)代理:在对象被访问时执行额外的动作。包括引用计数和线程安全检查。