设计模式-适配器模式
一、介绍
适配器模式(adapterPattern)属于结构型设计模式
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(wrapper)
例如电源适配器
二、代码说明
原有系统里有接口IDBHelper:
interface IDBHelper { void add(); void delete(); void update(); void query(); }
现在有第三方的类RedisHelper,它也有增删改查方法,但名字不一样
class RedisHelper { void AddCache(){} void DeleteCache(){} void UpdateCache(){} void QueryCache(){} }
1、第一种方法,继承(类适配器)
public class RedisHelperInherit:RedisHelper,IDBHelper { public void Add() { base.AddCache(); } 。。。 }
2、第二种方法,组合(对象适配器)
public class RedisHelperInherit:IDBHelper { RedisHelper redisHelper = new RedisHelper(); public void Add() { redisHelper.AddCache(); } 。。。 }
三、两种方法比较
一般是组合优于继承,因为组合方式更加灵活。使用继承的话,会继承父类多余的方法,并且,一个类只有一个父类。
而组合方式,上面的RedisHelper redisHelper = new RedisHelper();实例方式中,其实可以采用更灵活的依赖抽象,使用构造函数来注入对象,对象的类型是抽象类,这样就不是写死的了。
四、使用场景
适配器属于补救模式,不要项目初始阶段用。
当引入第三方组件并且要配合现有代码时使用。