设计模式总结
参考:hp://www.runoob.com/design-paern/yweight-paern.html
1. 创建型模式:5 种
(1) 普通工厂模式:
Shape 接口、circle 实现类、shapeFactory 工厂类
应用场景:数据库连接、日志记录
(2) 抽象工厂模式
Shape 接口、circle 实现类、color 接口、red 实现类、
AbstractFactory 抽 象 工 厂 类 / 接 口 、 ShapeFactory 继 承 / 实 现 抽 象 工 厂 、
ColorFactory 继承/实现抽象工厂、FactoryProducer 工厂生产器类
应用场景:产品组(如时尚装、商务装)
(3) 单例模式:构造函数是私有的
饿汉式:在 classloader 类加载时实例化好了,不存在多线程同步问题,不用加
锁,效率高,但是浪费内存。
懒汉式:synchronized 加锁
双检锁式:vola%le synchronized 加锁
静态内部类:内部类实例化,初始化时不加载内部类,调用方法时加载内部类。
枚举:自动实现序列化
常用模式:饿汉式,特殊情况的考虑其他模式。
(4) 建造者模式:builder
场景:去肯德基点餐,可以单点,也可以点套餐,点餐就是一个建造订单的过
程
(5) 原型模式:property,用于创建重复对象,一般和工厂模式结合使用。
应用场景:细胞分裂、克隆
对象实现 cloneable 接口
缓存对象(hashMap)
从缓存对象中获取对象的克隆
2. 结构型模式:7 种
(1) 适配器模式:Adapter
Mp3
Mp4、Mp5
被适配者和适配者没有层次关系,比如将 110 伏电压适配成 220 伏电压,他们
是一对一关系
(2) 桥接模式:bridge
创建桥接口实现,创建抽象类和具体功能实现,抽象类中放入桥。
将类的功能层次结构和实现层次结构相分离,使二者能够独立地变化,并在两
者之间搭建桥梁,实现桥接
评论0