今天从“ITeye新闻月刊 - 2011年04月 - 总第38期”中看到了一篇博文“一些软件设计的原则”。这篇文章将软件设计中的一些原则用简单的语言总结出来,很容易理解。很多人认为这些原则是束缚,会使设计人员陷入追求完美设计的歧途,会使项目走弯路甚至失败。我觉得学习这些设计原则还是是很有好处的,毕竟这些是长期实践总结的经验,先深入了解再考虑如果使用。
今天学习了适配器模式。
定义:把一个类的接口变换成客户端期待的另一种接口,从而使原本因接口不匹配而无法合作的两个类可以一起工作。现实中的例子,笔记本的电源适配器把220V变成20V,两国国家领导人交谈用到的翻译官。
适配器模式的用意是将功能相同或相近的两个接口加以转换。
适配器模式包括类适配器模式和对象适配器模式。前者是通过继承Adaptee并实现Target达到目标(Class Adapter extends Adaptee implements Target)。后者是通过引用Adaptee对象并实现Target达到目标(Class Adapter implements Target,引用Adaptee对象)。
类适配器的特点:适配器是源的子类,所以无法用于源的子类的适配。但是适配器可以重载源的方法,这是继承的特点。
对象适配器的特点:(1)可以将多个不同的源适配到同一个目标。所以可以应用与源及其子类(2)可以很容易增加新的方法。
使用适配器模式的场景:
(1)需要直接重用一个类,但是类的接口不满足需求。(2)需要改变多个已有子类的接口,这时候需要使用对象适配器。
适配器模式不应该仅限于类的层面,要进行向上扩展,例如架构方面。我们可以把一个完整的Service作为适配器,ESB企业服务总线也可以考虑为一种适配器,Window下使用的Unix仿真终端(把Unix命令适配到Window的命令)。