Java设计模式笔记(1)-适配器模式

2017-02-13  本文已影响0人  hbh404

适配器的定义

适配器就是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。比如:电源适配器、三角架基座转接部件、USB与串口的转接设备等。

两种模式:

涉及角色:

类适配器模式例子

源角色

public class Banner {
    private String string;
    
    public Banner(String string) {
        this.string = string;
    }
    
    public void showWithParen() {
        System.out.println("(" + string + ")");
    }
    
    public void showWithAster() {
        System.out.println("*" + string + "*");
    }
}

目标角色

public interface Print {
    void printWeak();
    
    void printStrong();
}

适配器

public class PrintBanner extends Banner implements Print{
    public PrintBanner(String string) {
        super(string);
    }
    
    @Override
    public void printWeak() {
        showWithParen();
    }

    @Override
    public void printStrong() {
        showWithAster();
    }
}

测试类

public class Main {
    public static void main(String[] args) {
        Print p = new PrintBanner("Hello");
        p.printWeak();
        p.printStrong();
    }
}

打印输出

(Hello)
*Hello*

对象适配器模式

目标角色

public abstract class Print {
    public abstract void printWeak();
    public abstract void printStrong();
}

适配器

public class PrintBanner extends Print{
    private Banner banner;
    
    public PrintBanner(String string) {
        banner = new Banner(string);
    }
    
    
    @Override
    public void printWeak() {
        banner.showWithAster();
    }

    @Override
    public void printStrong() {
        banner.showWithParen();
    }
}

适配器的优点

系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。

适配器的缺点

过多的使用适配器,会让系统非常零乱,不易整体进行把握。

使用场景

上一篇下一篇

猜你喜欢

热点阅读