模式说明:
- 定义一个适配器类,用于包装不兼容的对象
解决问题
- 原本由于接口不兼容而不能一起工作的那些类可以在一起工作
优势:
- 易拓展,再适配器类中可以拓展相应的功能而不影响原本的功能。
- 更好的复用性,系统需要使用现有的类,而此类的接口不符合系统的需要。增加适配器类实现了类的复用
- 解耦性 将目标类和适配者类解耦,通过引入一个适配器类重用现有的适配者类,而无需修改原有代码
- 符合开闭原则:同一个适配器可以把适配者类和它的子类都适配到目标接口;可以为不同的目标接口实现不同的适配器,而不需要修改待适配类
贴上代码:
public interface Target
{
//输出110电压
void Power110V();
}
public class Adaptee
{
public void Power220V()
{
Console.WriteLine("输出220v电压");
}
}
public class Adapter : Target
{
private Adaptee adaptee;
public Adapter(Adaptee adaptee)
{
this.adaptee = adaptee;
}
public void Power110V()
{
adaptee.Power220V();
}
}
代码中目标(Target)是需要110v电压,但是原本有的Adaptee类是输出的220v电压,这里存在冲突,那么需要提供一个适配器类Adapter去转换电压。