PHP设计模式总括篇

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

系列文章目录

第一章 工厂模式
第二章 抽象工厂模式
第三章 单列模式
第五章 责任链模式
第六章 策略模式


一定义

“每一个模式描述了一个在我们周围不断重复发生的**问题以及该问题的解决方案的核心。**这样你就能一次又一次地使用该方案而不必做重复劳动”

尽管 Alexander 所指的是城市和建筑模式但他的思想也同样适用于面向对象设计模式只是在面向对象的解决方案里我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。

一般而言一个模式有四个基本要素

1. 模式名称pattern name 一个助记名它用一两个词来描述模式的问题、解决方案和效果。

2. 问题 (problem) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果它可能描述了特定的设计问题如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候问题部分会包括使用模式必须满足的一系列先决条件。

3. 解决方案 (solution) **描述了设计的组成成分它们之间的相互关系及各自的职责和协作方式。**因为模式就像一个模板可应用于多种不同场合所以解决方案并不描述一个特定而具体的设计或实现而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合类或对象组合来解决这个问题。

4. 效果 (consequences) **描述了模式应用的效果及使用模式应权衡的问题。**尽管我们描述设计决策时并不总提到模式效果但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响显式地列出这些效果对理解和评价这些模式很有帮助。

二类别划分

1**目的准则**即模式是用来完成什么工作的。可分为创建型Creational、结构型 (Structural)、行为型 (Behavioral) 三种。

1**创建型模式**与对象的创建有关

2**结构型模式**处理类或对象的组合

3**行为型模式**对类或对象怎样交互和怎样分配职责进行描述。

**2范围准则**指定模式主要是用于类还是用于对象。

1**类模式**处理类和子类之间的关系这些关系通过继承建立是静态的在编译时刻便确定下来了。

2**对象模式**处理对象间的关系这些关系在运行时刻是可以变化的更具动态性。

从某种意义上来说几乎所有模式都使用继承机制所以 “类模式” 只指那些集中于处理类间关系的模式而大部分模式都属于对象模式的范畴。

三设计模式之间的关系

创建型类模式将对象的部分创建工作延迟到子类而创建型对象模式则将它延迟到另一个对象中。

结构型类模式使用继承机制来组合类而结构型对象模式则描述了对象的组装方式。

行为型类模式使用继承描述算法和控制流而行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务。

还有其他组织模式的方式。有些模式经常会被绑在一起使用例如Composite 常和 Iterator 或 Visitor 一起使用

有些模式是可替代的例如Prototype 常用来替代 Abstract Factory

有些模式尽管使用意图不同但产生的设计结果是很相似的例如Composite 和 Decorator 的结构图是相似的。

参考书籍《Design Pattern》
参考内容 www.cnblogs.com

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: php