Java设计模式-GoF设计模式

设计模式之间的区别

 

1、工厂模式与建造者模式

工厂模式   关注的是创建单个产品,
建造者模式 关注创建符合对象,多个部分。

2、策略模式与桥接模式

1、桥接(Bridge)模式是结构型模式,策略(strategy)模式属于行为模式
2、桥接主要是接口隔离的原则,策略在解耦上还仅仅是某一个算法的层次
3、策略模式的结构是包容在桥接模式结构中的

附:
接口隔离的原则即把本质上并不内聚的两种体系区别开来,使得它们可以松散的组合)
策略模式的结构是包容在桥接模式结构中的,Abstraction与Implementor之间就可以认为是策略模式,但是桥接模式一般Implementor将提供一系列的成体系的操作,而且Implementor是具有状态和数据的静态结构。而且桥接模式Abstraction也可以独立变化

3、适配器模式与桥接模式

共同点:桥接和适配器都是让两个东西配合工作
不同点:出发点不同。
适配器:改变已有的两个接口,让他们相容。
桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。

4、装饰模式与代理模式

1、相同点:
两者都是对类的方法进行扩展,
2、不同点:
装饰器模式关注于在一个对象上动态的添加方法
装饰器模式强调的是增强自身,在被装饰之后你能够在被增强的类上使用增强后的功能。
代理模式关注于控制对被代理对象的访问。因为被代理的对象往往难以直接获得或者是其内部不想暴露出来。
代理模式则强调要让别人帮你去做一些本身与你业务没有太多关系的职责(记录日志、设置缓存)。
3、核心应用:
1、装饰器模式:Java中IO流:
2、代理模式:Spring AOP,Interceptor等等需要在方法前后进行调用来增强的。

 

5、外观模式与中介者模式

1.外观模式是结构型模式,中介者模式是行为型模式。
2.外观模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。
3.外观模式协议是单向,中介者模式协议是双向。
4.外观模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。

6、单例模式与享元模式

相同
避免了对象的膨胀,大大节省了系统资源

不同
1、    
单例模式 属于创建型模式
享元模式属于结构型模式
2、
单例模式的难点完全不在与其思想,而在于技术实现,饿汉式,懒汉式,线程安全,Synchronized,DCL(双重检锁),volatile,静态内部类实现;
享元模式的核心思想在于大量细颗粒对象的重用,以节省内存资源
3、
单例模式严格控制单个进程中只有一个实例对象,类级别的,一个类只能有一个对象实例
享元模式可以再次创建对象 也可以取缓存对象,对象级别的,可以有多个对象实例,多个变量引用同一个对象实例

 

    原文作者:Pelb
    原文地址: https://blog.csdn.net/okxuewei/article/details/89295090
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞