`
wbj0110
  • 浏览: 1599168 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

php中的设计模式---装饰模式

阅读更多

装饰模式

 

所谓装饰模式就是让程序一层一层的包下来, 像是大口袋套小口袋。

 

例:

 

 

  1. class 食物{  
  2.  var $des='食物';  
  3.  var $cost;  
  4.  function getdes(){  
  5.  return $this->des;  
  6.  }  
  7.  function getcost(){  
  8.  return $this->cost;  
  9.  }  
  10. }  
  11. //被装饰者类  
  12. class 米饭 extends 食物{  
  13.  var $des="米饭";  
  14.  var $cost=0.44;  
  15. }  
  16. //装饰者类与被装饰者继承自同一个基类  
  17. class 菜 extends 食物{  
  18.  var $obj;  
  19.  var $des='';  
  20.  var $cost;  
  21. }  
  22. //细分的装饰者  
  23. class 炒土豆丝 extends 菜{  
  24.  var $obj;  
  25.  var $des='土豆丝';  
  26.  var $cost=0.10;  
  27.  function __construct($obj){  
  28.  $this->obj=$obj;  
  29.  }  
  30.  function getdes(){  
  31.  return $this->obj->getdes().$this->des;  
  32.  }  
  33.  function getcost(){  
  34.  return $this->obj->getcost()+$this->cost;  
  35.  }  
  36. }  
  37. //有一个细分的装饰者  
  38. class 咸菜 extends 菜{  
  39.  var $obj;  
  40.  var $des='咸菜';  
  41.  var $cost=0.10;  
  42.  function __construct($obj){  
  43.  $this->obj=$obj;  
  44.  }  
  45.  function getdes(){  
  46.  return $this->obj->getdes().$this->des;  
  47.  }  
  48.  function getcost(){  
  49.  return $this->obj->getcost()+$this->cost;  
  50.  }  
  51. }  
  52. //更多的菜  
  53. ......  
  54. //测试代码  
  55. $午饭= new 米饭();  
  56. $午饭=new 土豆丝($午饭);  
  57. $午饭=new 咸菜($午饭);  
  58. echo $午饭->getdes();//outputs 米饭土豆丝咸菜  
  59. echo $午饭->getcost();//outputs 0.64  
  60. ?>  

 

 

 

首先必须保证一个基类,所有的子类都继承了基类的方法,并给出自己特有的定义!

然后层层嵌套,调用上一级的对象,形成嵌套的规则!即时一个装饰模式。

主要用在一些层层嵌套的规则中!

分享到:
评论

相关推荐

    PHP5设计模式-装饰者模式

    装饰者模式是面向对象设计中的一种行为模式,它允许在运行时向对象添加新的行为或责任,而无需修改对象的源代码。在PHP5中,装饰者模式的应用可以帮助我们保持代码的灵活性,使得扩展功能变得容易,同时也遵循了开闭...

    装饰者模式 - PHP版

    装饰者模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或职责,而无需修改对象的源代码。在PHP中,装饰者模式尤其有用,因为它提供了灵活性,可以在不改变类原有结构的情况下扩展其功能。下面我们将...

    php设计模式-designpatterns-php.zip

    这个压缩包很可能包含了关于如何在PHP项目中应用设计模式的资料,特别是针对"designpatterns-php-master"这个文件名,我们可以推测这可能是一个关于PHP设计模式的开源项目或教程。 设计模式并不直接是代码,而是一...

    23种 设计模式---面向对象的基本原则

    这些设计模式不仅在PHP中适用,也是跨语言的编程思想,可以帮助开发者编写出更加高效、可维护和可扩展的代码。在实际项目中,合理运用设计模式,可以使代码结构更加清晰,降低复杂性,提升代码质量。

    PHP 设计模式-design-patterns.zip

    "PHP 设计模式-design-patterns.zip"这个压缩包很可能包含了对多种设计模式在PHP中的实现示例。设计模式通常分为创建型、结构型和行为型三大类,下面我们将详细探讨这些类别中的主要设计模式。 **创建型设计模式:*...

    Guide.to.PHP.Design.Patterns(PHP设计模式-中英双语)

    《PHP设计模式-中英双语》是一本深入探讨PHP编程中设计模式的指南,旨在帮助开发者提升代码质量和可维护性。设计模式是软件工程中经过时间验证的、解决常见问题的最佳实践,它们为复杂的软件设计提供了通用解决方案...

    PHP 设计模式-内含源码以及设计说明书(可以自己运行复现).zip

    标题和描述中提到的"PHP设计模式"是一个关于如何在PHP项目中有效应用设计模式的教程。设计模式不仅适用于大型企业级项目,也是小型个人项目提升代码质量的关键。这个资源包含两个部分:设计模式的讲解和源码实例,这...

    php 23种设计模式-整理篇.zip

    在编程领域,设计模式是一种通用解决方案的描述,用于解决软件设计中反复出现的问题。PHP作为一门广泛应用于Web开发的语言,同样可以应用23种经典的GOF(GoF,Gang of Four)设计模式。这些模式提供了可重用的结构,...

    php设计模式介绍,php设计模式介绍

    以上只是PHP设计模式中的一部分,每种模式都有其适用的场景和价值。通过学习和应用这些设计模式,开发者可以写出更高效、更具扩展性和易于维护的代码。在实际项目中,根据需求灵活选择和组合设计模式,可以显著提高...

    PHP设计模式

    《PHP设计模式》是一本探讨如何在PHP编程中应用设计模式的书籍。设计模式是软件工程领域中,解决常见问题的模板或策略。本书作者是美国的Aaron Saray,内容详尽地介绍了各种设计模式,旨在帮助PHP开发者构建出更加...

    Learning PHP设计模式

    **PHP设计模式详解** 在IT领域,设计模式是一种在特定情境下解决常见问题的标准方法,它们代表了软件...《Learning PHP设计模式》这本书正是为此目的而生,它将引导你深入理解这些模式,从而在实际开发中游刃有余。

    php设计模式

    因此,我会根据【标题】和【描述】字段中提供的信息,来生成关于PHP设计模式的知识点。 PHP设计模式的知识点主要包括: 1. 设计模式的概念:设计模式是软件开发中用于解决特定问题的一般性模板,它不是直接的代码...

    php设计模式代码

    以上就是压缩包中的部分PHP设计模式介绍。通过学习和应用这些模式,开发者可以编写出更加灵活、可维护的代码,提高代码质量,降低维护成本。如果你在使用过程中遇到任何问题,可以直接向作者提问。

    用PHP语言实现16个设计模式.zip

    在软件开发中,设计模式是解决常见问题的模板或最佳实践,它们被广泛应用于各种编程语言,包括PHP。本资源“用PHP语言实现16个设计模式.zip”提供了关于如何在PHP环境中应用这些模式的详细指导。以下是这16个设计...

    设计模式-7种开发语言(C#、JAVA、JavaScript、C++、Python、Go、PHP).pdf

    在标题提及的《设计模式-7种开发语言(C#、JAVA、JavaScript、C++、Python、Go、PHP)》中,作者林晨一点详细介绍了24种经典的设计模式,并提供了这七种主流编程语言的代码示例。以下将对其中一些关键的设计模式进行...

    PHP设计模式.rar

    以上只是PHP设计模式中的一部分,每种模式都有其独特的应用场景和价值。通过学习和掌握这些设计模式,开发者可以更好地设计和重构代码,提高软件的灵活性、可读性和可维护性。在实际开发过程中,应根据项目的具体...

    php设计模式全解.rar

    《PHP设计模式全解》是一本深入探讨PHP编程中设计模式的资源集合,它旨在帮助PHP开发者提升代码质量、可维护性和复用性。设计模式是软件工程中的宝贵经验总结,通过将常见的问题解决方案标准化,使得开发过程更加...

    Learning PHP设计模式 ([美]William Sanders) 中文pdf扫描版

    《Learning PHP设计模式》是由美国作家William Sanders撰写的一本面向初学者和中级PHP开发者的设计模式指南。这本书旨在帮助读者理解并应用设计模式这一强大的软件工程工具,以提高PHP编程的效率和代码质量。设计...

    php设计模式介绍

    《PHP设计模式介绍》导言 《PHP设计模式介绍》第一章 编程惯用法 《PHP设计模式介绍》第二章 值对象模式 《PHP设计模式介绍》第...《PHP设计模式介绍》第十二章 装饰器模式 《PHP设计模式介绍》第十三章 适配器模式

Global site tag (gtag.js) - Google Analytics