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,增加两个装饰者,进行绘图,代码如下:

        

        从而达到装饰的目的

        

  • 相关阅读:
    8.17HTML 标签
    二进制,八进制,十六进制
    keil5之32环境配置
    初遇stm32
    python与opencv的结合之人脸识别值
    01_什么是数据结构以及C语言指针回顾
    07_SSH免登录配置
    06_Linux系统常用命令
    05_Linux网络配置及CRT远程
    04_VMware虚拟机网络配置
  • 原文地址:https://www.cnblogs.com/helloJiu/p/6160620.html
Copyright © 2011-2022 走看看