这篇讲讲结构型模式,结构型模式主要总结了将不同类或对象组合在一起的一些经典结构,用于解决特定场景下的问题。其包括以下7种模式:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。下面介绍下每个设计模式是用于解决什么问题的,在什么场景下可以考虑使用。
1)代理模式:当需要给某些类方法增加一些非业务功能,如访问控制等,可以使用代理模式。代理类通过继承或组合原始类实现。在代理类方法中调用原始类的方法并实现需要新增的功能,例如限流、日志记录、权限限制。
2)桥接模式:此模式体现了基于组合而不是继承的设计思想。代码实现定义了抽象类与实现类,其中实现类并不是抽象类的的实现,而是抽象类的组合,例如蓝牙耳机类通过组合蓝牙类与耳机类来实现。在桥接模式下每个抽象类可以独立变化,减少了代码之间的耦合和类的数量。
3)装饰器模式:当需要给类增加业务功能时,为防止类的继承关系变得过于复杂,这时就可以运用装饰器模式。通过组合的方式组合原始类,并在装饰器类中增加需要的新功能,实现功能灵活扩展。
4)适配器模式:当要使用的类的接口与现有的系统不兼容时,就可以采用适配器模式。新类继承或组合要适配的原始类,并在其功能的基础上实现可以兼容当前系统的的接口。
5)门面模式:此模式就是把几个底层的接口封装起来,形成更高层次的接口。如某个场景下使用者要实现功能都需要依次调用A、B、C接口,这时就可以把A、B、C接口封装成D接口提供给使用者,减少接口使用的复杂度。
6)组合模式:此模式是一种抽象,就是类之间的关系可以组合成树结构,例如根目录类下有子目录类,子目录类下有文件类,它们之间组成树型结构。这时每个类或对象都可以看作树的节点,这样就可以利用树的特点遍历处理每个对象。
7)享元模式:当需要重复使用一个对象时,就可以使用享元模式。对于不会变的对象,只创建一份实例,在代码中多次引用,以此减少内存的消耗。如各种缓存池的设计就体现了此设计思想。
到此结构型模式介绍完毕,接下来的文章将对设计模式中的行为型模式进行介绍。
本文介绍了7种结构型设计模式,包括代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式及享元模式。每种模式都详细解释了解决的问题及适用场景。

被折叠的 条评论
为什么被折叠?



