设计模式这一概念最初源于建筑学,它的提出者克里斯托弗-亚历山大认为建筑设计要围绕以人为本的目的。建筑物要基于社会和人性来设计,程序设计亦是如此。
虽然简单套用模式并不能解决所有问题,但是模式这一理念对一些广泛的基础场景指出了最佳实践,是一种务实的分析和设计方法,是值得程序设计者学习和理解的,并时刻提醒设计者,设计模式的核心意义就是以人为本,设计要服务于人。
1994年,由四位面向对象领域专家合著出版了《设计模式:可复用面向对象软件的基础》,这本书中介绍了程序设计中常用的23中设计模式。这篇文章将介绍其中之一-适配器模式
模式简介
适配器模式是一种结构型模式,其核心是将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
现实应用
去过国外的朋友都知道,很多国家的电压和插头的标准与国内的都不一样,这就需要我们再购买一个转接头,即适配器。
在程序开发中,经常会有新开发的程序使用原有遗留程序的情况,而原有的程序往往会因为所设计的接口不符合新程序的调用规则而不能直接使用。这时如果修改原有的代码,很可能还需要对原有代码重新进行测试,说不定还会引入新的错误。
为了使设计符合“开放封闭原则”和“迪米特法则”,我们需要对原有的代码调用做适当的调整,把原有程序的调用方法转换为新程序的调用方法,这种设计模式称为适配器模式。
程序设计分析
如何才能把一个程序或类的调用方式转换成调用程序所需的形式,使得两个不匹配的类或者代码一起工作呢?
我们需要在两个程序或者类之间,设置一个新的类,用于翻译两者之间不同的调用方式。
解决方案
为了使得两个类能够互相调用,我们需要增加一个适配器类来解决调用接口不兼容的问题,以使得原本没有直接关系的类可以进行互相调用的操作。