GOF23设计模式

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

        ③双重检测锁

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

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

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

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

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

三、建造者模式
1.概念

            

2.例子
         

四、原型模式
1.概念:

2.实现


浅复制,Date实际上是同一个

深复制


也可以通过序列化和反序列化实现深复制


结构型模式


一、适配器模式
1.概念

2.例子

组合适配器

3.应用


二、代理模式
1.概念:


2.应用场景和分类


3.静态代理

4动态代理


处理类


生成代理


原理


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

1.场景及问题


2.桥接模式

四、组合模式

1.场景及核心



2.实现例子
调用


五、装饰模式
1.概念


2.实现细节


调用


3.总结


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

2.核心

3.例子


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

2.例子

3.实现


外部状态
享元类


享元工厂

调用


4.优缺点


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

2.例子


二、迭代器模式
1.场景

2。结构
一般是作为内部类实现的。

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

2.例子


四、命令模式
1.介绍

2.结构


五、解释器模式
1.介绍

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


七、策略模式
1.场景


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


2.实现


九、状态模式

1.场景
2.实现


十、观察者模式
1.场景

2.核心

3.实现


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

2.核心及实现
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值