zoukankan      html  css  js  c++  java
  • PHP设计模式笔记九:装饰器模式 -- Rango韩老师 http://www.imooc.com/learn/236

    装饰器模式(Decorator)

      概述

      1、装饰器模式可以动态地添加修改类的功能

      2、一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法

      3、使用装饰者模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性

      

      代码实现如下

        使用原型模式中的Canvas类,如果当前想设置draw()方法画图的颜色为红色,传统的方式实现如下:

        

        定义一个子类,重写draw()方法,从而实现特定的功能;如果需要增加很多功能呢?就会遇到问题:

        

        使用装饰者模式实现如下:

        Canvas.php代码如下:

        

        

        定义一个接口,用来规范装饰者DrawDecorator

        

        定义两个装饰类,分别修改颜色和修改字体大小

          ColorDrawDecorator.php

        

          SizeDrawDecorator.php

        

        在入口文件出实例化Canvas,增加两个装饰者,进行绘图,代码如下:

        

        从而达到装饰的目的

        

  • 相关阅读:
    git分支管理策略
    git解决冲突
    git分支创建和合并
    git连接远程库
    git删除文件
    git撤销修改
    4k测试网站
    Windows10通过TightVNC远程连接Ubuntu18.04
    robot报告合并输出
    python 传参中的*和**
  • 原文地址:https://www.cnblogs.com/helloJiu/p/6160620.html
Copyright © 2011-2022 走看看