适配器模式与外观模式

作者: Kwee | 来源:发表于2016-08-05 09:42 被阅读61次
    适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
    
    外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
    

    实例解析:
    现有两种动物,鸭子和火鸡。各种鸭子通过 Duck 接口实现,各种火鸡通过 Turkey 接口实现。那么如何使用 Duck 接口来实现一只火鸡呢。

    类图
    //主函数代码
    public class DuckTestDrive {
        public static void main(String[] args) {
            //鸭子
            DuckOne duckOne = new DuckOne();
            duckOne.quack();
            duckOne.fly();
    
            //火鸡
            TurkeyOne turkeyOne = new TurkeyOne();
            turkeyOne.gobble();
            turkeyOne.fly();
    
            //直接用Duck接口,显然不合适,写个适配器就好了。
            TurkeyOne turkeyTwo = new TurkeyOne();
            TurkeyAdapter turkeyAdapter = new TurkeyAdapter(turkeyTwo);
            turkeyAdapter.quack();
            turkeyAdapter.fly();
        }
    }
    

    具体代码

    外观模式:
    外观模式比较简单,不再用代码进行说明。


    外观模式

    '适配器模式的意图是,“改变”接口符合客户的期望。而外观模式的意图是,提供子系统的一个简化接口。'

    设计原则

    • 最少知识原则:只和你的密友谈话。
      即:当你正在设计一个系统,不管是任何对象,你都要注意它所交互的类有哪些,并注意它和这些类是如何交互的。不要让太多的类耦合在一起。

    以下要点可帮助避免违反此原则:
    就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:

    1. 该对象本身;
    2. 被当做方法的参数而传递进来的对象;
    3. 此方法所创建或实例化的任何对象;
    4. 对象的任何组件。
    最少知识原则

    相关文章

      网友评论

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

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