单例模式:
多个客户端只能使用同一个对象,不允许创建其他对象
懒汉式:在需要调用对象时候才创建
饿汉式:在调用之前已经创建
简单工厂模式:
对目标类的不同实现的创建统一由一个工厂创建
客户端不需要只能具体创建细节,只需要向工厂指定具体的实现类
当添加了新的实现类时,需要修改工厂增加新的创建代码,违背关闭原则
工厂方法模式:
为了解决简单工厂模式的缺点,建立工厂抽象类,具体的工厂实现类创建具体的产品的实现类
增加了系统复杂度,新增产品时,需要新增具体的工厂实现类
抽象工厂模式:
解决一个工厂只能生产一个产品的缺点,每个工厂可以创建多个产品
增加新产品时需要新增抽象工厂的实现逻辑
策略模式:
有多个策略实现类,根据不同的场景使用不同的策略,
客户端需要知道所有的策略
适配器模式:
把一个类的接口变成客户端需要的接口,从而是两个不匹配的接口能够一起工作
模式有:类适配器和对象适配器
类适配器:适配器继承被适配类实现新的接口
对象适配器:适配器持有被适配类实现新的接口
代理模式:
代理实现了某个接口并持有接口的实现类,使用实现类来实现所有接口方法
场景:防止客户端使用具体实现类增加系统复杂性
远程代理,虚拟代理,权限等
模板方法模式:
抽象类定义实现过程,具体的过程由子类来实现
建造者模式:
复用代码,封装,用户不需要知道具体复杂的实现
外观模式:
由一个接口统一了几个不同的子接口,用户直接使用该接口就能实现需要的功能,不需要知道
具体的子类的实现行为