美文网首页
适配器模式与外观模式

适配器模式与外观模式

作者: 柚子过来 | 来源:发表于2018-02-09 12:29 被阅读0次

    作用:适配器:将一个接口转换成另一个接口,让不兼容的接口合作无间。外观:提供一个统一的接口来访问子系统的一群接口,将复杂的调用对外简化。

    Example:
    适配器模式什么时候用呢,如果涉及到两个接口之间的调用,但是两个接口不兼容,比如方法参数不匹配啥的,但是我们又不想修改任何一方的接口,这个时候适配器就可以大显身手了:

    public class Server {
    public void cook(String[] item) {    //server端的cook方法接受的是String[]
        //cook with item
    }
    }
    
    public class  Client {
    List<String> item ;
    Server server;
    Client(List<String> item,Server server) {
        this.item = item;
        this.server = server;
    }
    
    public void cook() {
        server.cook(item); //这里肯定不行啊,因为client的item是个List
    }
    }
    

    那client和server的代码都不想修改怎么办,加个适配器呗:

    public class Adapter {
    Server server;
       public Adapter(Server server) {
       this.server = server;
       }
        public void cook(List<String> item) {
       String[] strings = (String[]) item.toArray();
       server.cook(strings);
    }
    }
    

    这样client端只要调用Adapter的cook方法就行了,如果接口变了,也只要修改Adapter就行了。

    至于外观模式,就更简单了,比如我想吃饭,我要依次调用煮饭、炒菜、做汤的接口。而外观模式就是提供一个统一的吃饭接口,该接口内部调用了煮饭、炒菜、做汤的接口。所以我们要吃饭的话直接调用一个吃饭接口就行了,简化了接口调用。

    相关文章

      网友评论

          本文标题:适配器模式与外观模式

          本文链接:https://www.haomeiwen.com/subject/peyftftx.html