设计思想学习—适配器模式

适配器模式

适配器模式(Adapter):将类的接口转换为客户希望的另一个接口。

适配器模式组成:

  • 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
  • 需要适配的类(Adaptee):需要适配的类或适配者类。
  • 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。  

UML图
设计思想学习—适配器模式_第1张图片

个人理解
适配器就跟我们现实用的转接头一样,三插想要插在双插插座上需要转换器,苹果电脑连网线需要转换器,转换器就是我们这里的适配器一个意思,主要是让两个不匹配的事物结合。

代码

interface Target {  
    void doSome();  
}  
class Adaptee{
    public void toDo(){
        System.out.println("我是三插");
    }
}
class Adapter implements Target{
    private Adaptee adaptee=new Adaptee();
    @Override
    public void doSome() {
        adaptee.toDo();
        System.out.println("给你变成双插");   
    }

}

这里是持有对象的写法,然后通过适配器让三变二就能插入双插的插座
还有一种写法是继承

class Adapter extends Adaptee implements Target{
    @Override
    public void doSome() {
        super.toDo();
        System.out.println("给你变成双插");       
    }   
}

也可以作为参数传进去,写法很多种,不用拘泥形式。

我认为设计模式并不是说一定要死死的套用固定的格式和写法,主要的还是用此类的想法来最优化的解决遇到的问题。

前面说的那些设计模式都有固定的格式拿来举例子,最终还是为了容易理解设计思想的本身。

个人认为在实际运用中其实有的设计模式并不适合业务的需求,往往需要组合或者变化,所以需要灵活运用思想而不是照搬。

适配器模式主要就是告诉我们,想要对接两个类或者接口,要遵循开闭原则,不要去改动原来的代码,那样可能或带来一系列的变化。

而是要通过一个新建的类来进行转换。

你可能感兴趣的:(学习笔记)