一、引言 富兰克林揭秘了雷电的真实面目,那我们是否设想过将雷电储存下来呢?生活中如果买了国外的电器(美国、日本)使用电压为110V的,可国内通常电压是220V的,国外电器使用电压与国内电压不符,那怎么才能让它适用国内这个环境而正常使用呢?我们知道这时候需要用到电源适配器220V-110V,电器才能正常使用。电源适配器实现能使用220V电压方法,但实质调用的是使电器能使用110V电压这一行为。类比在程序设计中,也存在这样的思想,没错就是我们今天要学习的结构型设计模式之适配器模式 二、适配器模式 定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而无法一起工作的类可以一起工作。 适配器模式有类适配器模式和对象适配器模式 类适配器优点: 1.在不修改原有代码的基础上复用现有类,很好的复合了“开闭原则” 2.可以重新定义被适配器类的部分行为,因为适配器类是被适配器类的子类 缺点:当适配器类匹配被适配器类及它的所有子类时,因为C#中类不能被多继承,所以用类的适配器模式是实现不了的。两个类耦合度较高。 对象适配器优点: 1.相比类适配器模式的优点,对象适配器采用“对象组合”的方式,更加的“松耦合”lll 缺点:重定义被适配器类的行为较困难,这时就需要生成被适配器的子类,并引入被适配器的子类而不是被适配器类
使用场景:复用一些现有的类,但是接口又与现有环境不一致的情况,如.NET类库提供的适配器DataAdapter。 本文关于设计模式之适配器模式的学习就到这里了,结构型设计模式更加关注类或者对象组合成的结构及依赖关系。
|