• 适配器模式


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

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

    上面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是以继承的形式出现的,而面向对象用继承的判断法则是:子类而代替父类,如果按照上面的例子是不行的,继承的代价太大,也不符合面向对象思想。这种情况就不多说了。

  • 相关阅读:
    Asp.Net Core 3.1 使用Autofac Aop
    Abp中的工作单元UnitOfWork的Aop是如何实现的
    Asp.Net Core 3.1 Api 集成Abp项目AutoMapper
    Asp.Net Core 3.1 Api 集成Abp项目动态WebApi
    php限制登录次数
    vbs小实例
    php导出数据到excel
    mysqli单例模式连接数据库
    微信JsApi支付
    HTML5新增表单控件
  • 原文地址:https://www.cnblogs.com/huaizuo/p/2614273.html
Copyright © 2020-2023  润新知