适配器模式
适配器模式是作为两个不兼容接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能.这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能.
将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
主要解决:主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新的环境要求的接口对象不能满足的情况.
优点:
- 可以让任何两个没有关联的类一起运行.
- 提高了类的复用
- 增加了类的透明度
- 灵活性好
缺点:
- 过多的使用适配器,会让系统非常零乱,不易整体进行把握.
使用场景:有动机的修改一个正常运行的系统的接口,这时应该考虑使用适配器模式.
桥接模式
桥接模式是用于把抽象化与实现话解耦,使得二者可以独立变化.这种类型的设计模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦.
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类.这两种类可被结构化改变而互不影响.
优点:
- 抽象和实现的分离
- 优秀的扩展能力
- 实现细节对客户透明
缺点:
桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程.
享元模式
享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型设计模式,它提供了减少对象数量从而概述应用所需的对象结构的方式.
运用共享技术有效的支持大量细粒度的对象
优点:
大大减少对象的创建,降低系统的内存,使效率提高.
缺点:
提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱.
代理模式
在代理模式中,一个类代表另一个类的功能.这种类型的设计属于结构型模式.
为其他对象提供一种代理以控制对这个对象的访问.
优点:
- 职责清晰
- 高扩展性
- 智能化
缺点:
- 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢.
- 实现代理模式需要额外的工作,有些代理模式的实现非常复杂.