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

时间: 2024-10-27 12:26:20

php设计模式及耦合性和多形性的相关文章

内聚性和耦合性

内聚性 内聚性,又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标.模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高.理想的内聚性要求模块的功能应明确.单一,即一个模块只做一件事情.模块的内聚性和耦合性是两个相互对立且又密切相关的概念. 内聚性从弱到强: (1) 偶然内聚:模块中的代码无法定义其不同功能的调用.但它使该模块能执行不同的功能,这种模块称为巧合强度模块. (2) 

耦合性

耦合性 耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量.耦合的强弱取决与模块间接口的复杂性.调用模块的方式以及通过界面传送数据的多少.模块间的耦合度是指模块之间的依赖关系,包括控制关系.调用关系.数据传递关系.模块间联系越多,其耦合性越强,同时表明其独立性越差.软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分模块的一个准则就是高内聚低耦合. 基本信息 耦合性(或称“耦合度”) 英文 : coupling 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度

浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移

http://blog.csdn.net/dba_waterbin/article/details/8996872 ㈠ Redis 与 MySQL 的耦合性            在业务架构早期.我们便该"吃着碗里的看着锅里的".切莫让MySQL 有梦.而Redis 无心    毕竟.有些关系型的结构不适合放到Redis跑."男女搭配.干活不累"嘛.推荐让MySQL与Redis喜结连理        其次.这 2 人.一般是在不同场景做选择.而不会在性能上选择. 

第7周作业--耦合性

耦合式对一个软件结构内不同模块之间互联程度的度量.耦合强弱取决于接口的复杂度, 进入或访问某一模块的点,以及通过接口的数据.一般模块之间的可能的连接方式有七种, 构成耦合的七种类型,它们的关系为: A. 非直接耦合:两个模块没有直接的关系(模块1和模块2),独立性最强 B.数据耦合:即一个模块访问另一个模块的时候,彼此之间是通过数据参数来交换输入.输出信息的,这种耦合为数据耦合.这种耦合较为松散,模块间独立性较强. C.特征耦合:即一组模块通过参数传递记录信息,用户情况是个数据结构,图中模块都与

追踪CM_CONTROLCHANGE消息的产生和执行过程,可以较好的领会VCL的思想(就是到处通知,但耦合性很弱)

追踪CM_CONTROLCHANGE消息的流向,可以较好的 测试代码: procedure TForm1.Button1Click(Sender: TObject);var Image2 : TImage;beginImage2 := TImage.Create(self);Image2.Left := 100;Image2.Top := 50;Image2.Picture.LoadFromFile('c:\pic.jpg');Image2.Parent := Form1;end; proced

Spring mvc 精确 控制返回字段 SimpleFilterProvider,@JasonView,以及VO 视图模型的选择

使用 SimpleFilterProvider,PropertyFilter 好处在于 解耦,灵活.但是弊端也非常明显 先来看看@JsonView 的处理方式 在 WebMvcConfigurationSupport 中有一个配置方法,如果程序中有 com.fasterxml.jackson.databind.ObjectMapper && com.fasterxml.jackson.core.JsonGenerator 包的引用就会把实现了  RequestBodyAdvice 的 Js

小菜学设计模式——高内聚、低耦合

背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习<大话设计模式>时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成长之旅. 真诚的希望自己能够从一名小菜成长为一名大鸟! 编写的程序应该满足: 1)可维护 2)可扩展 3)可复用 4)够灵活 废话少说,言归正传,设计模式原则之:高内聚.低耦合 当然,这条原则不是面向接口编程的具体原则,他是所有原则.所有设计模式都必须遵循的一条亘古不变的宗旨. 网上学习与记录 起因:模块独立性指每个模

iOS中都有什么设计模式?各个设计模式的作用 (转载)

原文地址: http://www.cnblogs.com/dxb123456/p/5479198.html 一  iOS中都有什么设计模式? 1.代理模式 2.观察者模式 3.MVC模式 4.单例模式 5.策略模式 6.工厂模式 二  各个设计模式的作用? (一)代理模式 在观察者模式中,一个对象任何状态的变更都会通知另外的对改变感兴趣的对象.这些对象之间不需要知道彼此的存在,这其实是一种松耦合的设计.当某个属性变化的时候,我们通常使用这个模式去通知其它对象. 此模式的通用实现中,观察者注册自己

iOS中都有什么设计模式?各个设计模式的作用?

一  iOS中都有什么设计模式? 1.代理模式 2.观察者模式 3.MVC模式 4.单例模式 5.策略模式 6.工厂模式 二  各个设计模式的作用? (一)代理模式 在观察者模式中,一个对象任何状态的变更都会通知另外的对改变感兴趣的对象.这些对象之间不需要知道彼此的存在,这其实是一种松耦合的设计.当某个属性变化的时候,我们通常使用这个模式去通知其它对象. 此模式的通用实现中,观察者注册自己感兴趣的其它对象的状态变更事件.当状态发生变化的时候,所有的观察者都会得到通知.苹果的推送通知(Push N