zoukankan      html  css  js  c++  java
  • 适配器模式

    今天进入了结构型模式篇之第一------适配器模式

    其实,适配器模式在编程中我们会不知不觉中应用到,我也有用过。我个人感觉就是利用现有的资源,然后根据接口要求适配。

    上面UML的这种事对象适配器,适配器有两种表达方式,另一种的类适配器。待会说。上面的结构清晰简明就不多说了。反正这种文章只有我自己看(自娱自乐)。

    接下来看个例子吧。

    interface IStack//客户期望的接口(Request())
        {
            void Push(object item);
            object Pop();
            object Peek(object item);
        }
    
    namespace Adapter
    {
        class Adapter:IStack//适配对象
        {
            ArrayList Adaptee;//被适配对象--(我们拥有的资源)
    
            public Adapter() {
                Adaptee = new ArrayList();
            }
    
            public void Push(object item) {
                Adaptee.Add(item);
            }
    
            public object Pop() {
                return Adaptee.RemoveAt(Adaptee.Count - 1);
            }
        }
    }
    

    上面的例子是,我们想实现一个栈的操作,但有不想从新写代码,只好利用现有的资源ArrayList进行改造,那么就要对它进行适配,适配成客户需要的接口。

    看看上面的代码ArrayList是以组合的形式存在的,更符合松耦合的原则。

    接下来看看类结构的形式吧。

    对这个UML解释:

    Adapter要同时继承接口Target和Adaptee,那么现在的情况是Adaptee是以继承的形式出现的,而面向对象用继承的判断法则是:子类而代替父类,如果按照上面的例子是不行的,继承的代价太大,也不符合面向对象思想。这种情况就不多说了。

  • 相关阅读:
    Java架构师成长直通车百度云
    java架构师直通车百度云
    java架构师成长直通车
    初级Java程序员需要掌握哪些主流技术
    JAVA互联网架构师专题/分布式/高并发/微服务之咕泡学院学习笔记
    java架构师学习之路
    新手都能学懂的SpringBoot
    2020新版python最新就业班项目实战教程(完整)
    35个jQuery小技巧!
    web知识总结
  • 原文地址:https://www.cnblogs.com/huaizuo/p/2614273.html
Copyright © 2011-2022 走看看