zoukankan      html  css  js  c++  java
  • 秒懂装饰者模式

     接口 A{

         统一的方法();

    一个普通的继承者

    B 实现 A{

       统一的方法(){

     }

    代码写完了,五年之后B不够用了,我们好几个地方的代码用到B,直接在B里添加方法,对既有的代码来说是冗余的,

    我们又想继续用B里的方法,我们可以直接写个类继承B,在里面再添加方法,

    装饰模式也可以解决这种事情,但是用的不是继承,而是:

    C 实现 A{

       private A a;

       构造方法 C(A a1){

          a=a1;

      }

       

        统一的方法(){

          a.统一的方法();

     }

         添加的其他方法(){

        }

    }

    用的时候直接new 一个B,然后传入C的构造方法,就可以通过C来用B的方法,C还可以有自己的方法。

    定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.相比用生成子类方式达到功能的扩充显得更为灵活

    设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。

  • 相关阅读:
    ASP.NET2.0轻松解决统计图表
    SQL中日期比对 CONVERT转化函数的用法
    闭包理解?
    测试网站速度
    table js(转载)
    js构造造函数
    前端开发 优化(转载)
    使用Gzip压缩提升WEB服务器性能
    在线优化
    IE中的CSS3不完全兼容方案
  • 原文地址:https://www.cnblogs.com/flying607/p/6931287.html
Copyright © 2011-2022 走看看