适配器模式

2019-02-17  本文已影响9人  黄靠谱

概述

适配器模式的设计方法

扩展新功能有3种方式:

  1. 继承扩展类,获取扩展功能。但是因为java单继承,如果A类自身已经继承了,就没法扩展,而且最多只能扩展一个类,如果要扩展多个类则冲突了。
  2. 把扩展类作为成员变量,来获取扩展功能。缺点是每次扩展一个功能,都要修改客户端的代码,这违反了开闭原则。
  3. 用Adapter来封装所有要扩展的功能类。客户端只需要和Adapter交互即可。例如下面的代码,客户端只要调用 Adapter.play就可以播放所有支持的类型的歌曲了。缺点:如果是一次只调用一个扩展类,那么无需加载那么多无关的扩展功能类,浪费内存。
Adapter{
    private MP4 mp4=new MP4();
    private FLV flv=new FLV();
    public void play(String type,String fileName){
        if(type.equals("mp4"){
            mp4.play(fileName)
        }else{
            flv.play(fileName)
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读