设计模式-适配器模式

一、介绍

适配器模式(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();实例方式中,其实可以采用更灵活的依赖抽象,使用构造函数来注入对象,对象的类型是抽象类,这样就不是写死的了。

四、使用场景

适配器属于补救模式,不要项目初始阶段用。

当引入第三方组件并且要配合现有代码时使用。

posted @ 2022-03-16 20:06  暗,伏!  阅读(30)  评论(0编辑  收藏  举报