4、适配器模式总结

    在对象适配器模式中。适配器与适配者之间是关联关系;在类适配器模式中。适配器与适配者之间是继承关系。不论是对象适配器还是类适配器。适配器模式都将现有接口转化为客户类所期望的接口。实现了对现有类的复用。为了避免两个或者多个事物之间直接耦合。应该怎样分配职责?

大多数情况都能够通过添加一层间接性来解决。将职责分配给中介对象。使其作为其它构件或服务之间的媒介,以避免他们之间的直接耦合。在适配器模式中,为了避免客户类和与适配者类直接耦合,也就是客户类直接訪问适配者类。能够添加一个适配器类,减少客户类与适配者类的耦合性。当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法。而这个过程对客户类是透明的,客户类并不直接訪问适配者类。

它是一种使用频率很高的设计模式,在软件开发中得以广泛应用。

1.主要长处

    不管是对象适配器模式还是类适配器模式都具有例如以下长处:

    (1) 将目标类和适配者类解耦。通过引入一个适配器类来重用现有的适配者类,无须改动原有结构。

    (2) 添加了类的透明性和复用性,将详细的业务实现过程封装在适配者类中。对于client类而言是透明的。并且提高了适配者的复用性,同一个适配者类能够在多个不同的系统中复用。

    (3) 灵活性和扩展性都非常好。通过使用配置文件,能够非常方便地更换适配器,也能够在不改动原有代码的基础上添加新的适配器类,全然符合“开闭原则”。

    详细来说,类适配器模式还有例如以下长处:

    因为适配器类是适配者类的子类,因此能够在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。

    对象适配器模式还有例如以下长处:

    (1) 一个对象适配器能够把多个不同的适配者适配到同一个目标

    (2) 能够适配一个适配者的子类。因为适配器和适配者之间是关联关系,依据“里氏代换原则”。适配者的子类也可通过该适配器进行适配。

2.主要缺点

    类适配器模式的缺点例如以下:

    (1) 对于Java、C#等不支持多重类继承的语言。一次最多仅仅能适配一个适配者类。不能同一时候适配多个适配者;

    对象适配器模式的缺点例如以下:

    与类适配器模式相比,要在适配器中置换适配者类的某些方法比較麻烦。假设一定要置换掉适配者类的一个或多个方法,能够先做一个适配者类的子类。将适配者类的方法置换掉。然后再把适配者类的子类当做真正的适配者进行适配,实现过程较为复杂。

3.适配器模式详细应用

    (1)复用已经写好的功能模块,比如:已经写好了一个员工信息模块。要又一次开发一个新的企业管理系统。能够复用员工信息模块。

    (2)程序执行时的日志信息,能够记录到数据库,也能够记录到Txt文件里。

如今变更需求。使日志信息能够同一时候记录到数据库和Txt文件里。

能够加入一个适配器类,适配数据库操作和文件操作。

    (3)在软件开发过程中。我们会开发出一些功能性模块。如排序算法模块、查找模块、或者封装链表、队列、树等操作。

在须要复用这些功能的时候,直接使用。无需又一次开发这些功能模块。

    (4)网上银行加密模块开发: 已经开发好了一套网银加密模块。如今须要又一次开发一个类似的软件,能够直接复用已经开发好的加密模块。

    (5)某公司已经开发了一套火车票识别软件。包括二值化、去噪、版面分析、栏目提取等模块。如今要开发银行卡识别项目。则能够直接复用火车票识别中的功能模块。

    (6)某公司想要开发一套输入法软件,能够购买搜狗输入法的搜索模块,直接加以复用,无需自己重头开发。

    (7)生活中的适配器: 电源适配器。USB转串口线,水管专修工人使用各种接口连接本来没法进行相连的管道。

posted on 2017-04-20 21:05  yutingliuyl  阅读(111)  评论(0编辑  收藏  举报