Heim  >  Artikel  >  Backend-Entwicklung  >  php设计模式及耦合性和多形性_PHP教程

php设计模式及耦合性和多形性_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:54:27908Durchsuche

php设计模式及耦合性和多形性

什么是设计模式:

 

设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板。

 

所有的设计模式都有一些常用的特性:一个标识(a name),一个问题陈述(a problem statement)和一个解决方案(a solution)。

 

1、一个设计模式的标识是重要的,因为它会让其他的程序员不用进行太深入的学习就能立刻理解你的代码的目的(至少通过这个标识程序员会很熟悉这个模式)。

2、问题描述是用来说明这个模式的应用的领域。

3、解决方案描述了这个模型的执行。一个好的设计模式的论述应该覆盖使用这个模型的优点和缺点。

 

比如,你从店铺里面买的一件衬衫是一个代码库,它的颜色,样式和大小都由设计师和厂商决定,但它满足了你的需求。然而,如果店里面没有什么衣服适合你,那你就能自己创建自己的衬衫(设计它的形状,选择布料,然后裁缝在一起)。但是如果你不是一个裁缝,你可能会发现自己很容易的去找一个合适的模式然后按着这个模式去设计自己的衬衫。使用一个模型,你可以在更少的时间内得到一个熟练设计的衬衫。

 

 

 

 

php一共有传统的23种设计模式,

 

Interpreter(解释器模式),Factory(工厂模式),Facade(外观模式),Decorator(装饰模式),Builder(建造者模式)

 

Adapter(适配器模式),Template (模板模式),Command(命令链模式),Singleton(单例模式),Observer(观察者模式)

 

Strategy(策略模式),Visitor (访问者模式),Memento (备忘录模式),Prototype (原型模式),Mediator (中介者模式)

 

FlyWeight (享元模式),Chain Of Responsibility (职责链模式),Bridge (桥接模式),Proxy (代理模式),State (状态模式)

 

Composite (组合模式),Interator (迭代器模式),DAO(数据访问对象模式),Delegation(委托模式)

 

 

 

 

 

 

其中有五种php常见的设计模式

1.工厂模式 2.单例模式(单元素模式)3.观察者模式 4.命令链模式 5.策略模式

 

 

什么是耦合:

   耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合

 

 

什么是多形性:

 

“对于面向对象的程序设计语言,多型性是第三种最基本的特征(前两种是数据抽象和继承。”

 

   “多形性”(Polymorphism)从另一个角度将接口从具体的实施细节中分离出来,亦即实现了“是什么”与“怎样做”两个模块的分离。利用多形性的概念,代码的组织以及可读性均能获得改善。此外,还能创建“易于扩展”的程序。无论在项目的创建过程中,还是在需要加入新特性的时候,它们都可以方便地“成长”。



www.bkjia.comtruehttp://www.bkjia.com/PHPjc/997425.htmlTechArticlephp设计模式及耦合性和多形性 什么是设计模式: 设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板。 所有的设计模式...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn