创建型模式
一、单例模式—饿汉式和懒汉式
1.核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
2.应用场景:Windows中的任务管理器;数据库连接池;项目中的配置文件类等等。
3.优点:减少了系统性能开销。
4.五种单例模式:
        ①饿汉式(线程安全,调用效率高。但是,不能延时加载)
        GOF23设计模式
        类初始化时立即加载,类初始化时,处于天然的线程安全模式,因此线程安全,方法没有同步,效率高。
       
        ②懒汉式(单例对象延迟加载)
        GOF23设计模式
        真正用的时候才加载,资源利用率高了,但每次调用getInstance()方法都要同步,并发效率低。

        ③双重检测锁

        GOF23设计模式
        将同步内容放到if内部,提高了执行效率,不必每次获取对象都进行同步,第一次创建之后就不需要在外等待了。
        看起来不错,但是由于编译器优化原因和JVM底层内部模型原因,偶尔会出问题,不建议使用。
        
        ④  静态内部类实现方式(也是懒加载)
         GOF23设计模式
         外部类没有static属性,则不会像饿汉式那样立即加载对象,只有真正调用getInstance(),才会加载静态内部类。加载            类时是线程安全的,兼并了并发高效调用和延迟加载的优势。

        ⑤使用枚举实现单例
        GOF23设计模式
        GOF23设计模式
        实现较简单,枚举本身就是单例模式。由JVM从根本上提供保障!避免通过反射和反序列化的漏洞。
        缺点是无延迟加载。

二、工厂模式
1.概念:实现了创建者和调用者的分离,由工厂去new。

2.三种模式
        ①简单工厂模式(用来生产同一等级结构中的任意产品,对于增加新的产品,需要修改已有代码)
       GOF23设计模式
         GOF23设计模式
        不用工厂,调用者要知道非常多,不仅要知道接口Car还要知道实现类。
        GOF23设计模式
        简单工厂类
        GOF23设计模式                       GOF23设计模式
        GOF23设计模式
        仅需要知道接口,和从哪拿到产品
        但违反了开闭原则(增加新的产品要修改代码)
        
        ②工厂方法模式(用来生产同一等级结构中的固定产品,支持增加任意产品)
        创建工厂接口
        GOF23设计模式
        创建具体工厂
        GOF23设计模式
        GOF23设计模式
        符合开闭原则,但增加了很多类

        ③抽象工厂模式(用来生产不同产品族的全部产品,针对增加新的产品,无能为力,支持增加产品族)
        GOF23设计模式
        GOF23设计模式
        GOF23设计模式
        GOF23设计模式

三、建造者模式
1.概念

            GOF23设计模式

2.例子
         GOF23设计模式

四、原型模式
1.概念:

GOF23设计模式
2.实现

GOF23设计模式

浅复制,Date实际上是同一个
GOF23设计模式

深复制
GOF23设计模式


也可以通过序列化和反序列化实现深复制
GOF23设计模式
GOF23设计模式


结构型模式

GOF23设计模式

一、适配器模式
1.概念

GOF23设计模式

2.例子
GOF23设计模式
GOF23设计模式
GOF23设计模式
GOF23设计模式

组合适配器
GOF23设计模式

GOF23设计模式
3.应用

GOF23设计模式

二、代理模式
1.概念:

GOF23设计模式
GOF23设计模式

2.应用场景和分类

GOF23设计模式

3.静态代理
GOF23设计模式

4动态代理

GOF23设计模式
GOF23设计模式

处理类

GOF23设计模式
GOF23设计模式

生成代理
GOF23设计模式


原理

GOF23设计模式

三、桥接模式
两个维度,分开来继承,一个持有另外一个。

1.场景及问题

GOF23设计模式
GOF23设计模式

2.桥接模式
GOF23设计模式

四、组合模式

1.场景及核心

GOF23设计模式


2.实现例子
GOF23设计模式
GOF23设计模式
GOF23设计模式
GOF23设计模式
调用

GOF23设计模式

五、装饰模式
1.概念

GOF23设计模式

2.实现细节

GOF23设计模式

GOF23设计模式
GOF23设计模式
GOF23设计模式
调用

GOF23设计模式

3.总结

GOF23设计模式

六、外观模式
1.迪米特法则

GOF23设计模式
2.核心

GOF23设计模式
3.例子

GOF23设计模式

七、享元模式
1.场景和核心

GOF23设计模式
2.例子

GOF23设计模式
3.实现

GOF23设计模式
GOF23设计模式

外部状态
GOF23设计模式
享元类

GOF23设计模式
GOF23设计模式

享元工厂

GOF23设计模式
调用

GOF23设计模式
GOF23设计模式

4.优缺点

GOF23设计模式

                                                                                                                行为型模式
一、责任链模式
1.定义及场景
GOF23设计模式

2.例子
GOF23设计模式

GOF23设计模式

二、迭代器模式
1.场景
GOF23设计模式

2。结构
GOF23设计模式
一般是作为内部类实现的。

三、中介者模式
1.场景及核心

GOF23设计模式
GOF23设计模式
2.例子

GOF23设计模式

四、命令模式
1.介绍

GOF23设计模式
2.结构

GOF23设计模式
GOF23设计模式

五、解释器模式
1.介绍
GOF23设计模式

六、访问者模式
1.简单介绍

GOF23设计模式

七、策略模式
1.场景

GOF23设计模式
GOF23设计模式

八、模板方法模式
1.场景

GOF23设计模式
GOF23设计模式

GOF23设计模式
2.实现

GOF23设计模式

九、状态模式

1.场景
GOF23设计模式
GOF23设计模式
2.实现

GOF23设计模式

十、观察者模式
1.场景

GOF23设计模式
2.核心

GOF23设计模式
3.实现

GOF23设计模式
GOF23设计模式

十一、备忘录模式
1.场景

GOF23设计模式
2.核心及实现
GOF23设计模式

相关文章: