《Learning PHP设计模式》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)桑德著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2014
  • ISBN:9787512352728
  • 页数:317 页
图书介绍:通过学习如何在代码中使用设计模式,可以更高效地构建服务器端应用,在这个过程中你的PHP编程水平也将逐步提高。这本书利用大量浅显易懂的例子告诉你如何应用多种面向对象模式,并展示了这些模式在一些成熟的实际项目中的具体应用。本书的主要内容包括:学习设计模式概念,包括如何选择模式来处理特定的问题;对面向对象编程概念有一个概要了解,如组合、封装、多态和继承;应用创建型设计模式动态地创建页面(采用一种工厂方法而不是直接实例化);使用结构型设计模式对原有的对象或结构做出修改,而无需改变原来的代码;使用行为型模式帮助对象协同工作来完成任务;使用代理和职责链等行为型模式与MySQL交互;探索使用PHP内置设计模式接口的方法。

前言 1

第1部分 轻松掌握设计模式基础 13

第1章 PHP与面向对象编程 13

1.1中级和高级编程初探 13

1.2为什么采用面向对象编程 14

1.2.1解决问题更容易 14

1.2.2模块化 15

1.3类与对象 16

1.3.1单一职责原则 16

1.3.2 PHP中的构造函数 17

1.4客户类作为请求者 17

1.5速度如何 21

1.5.1开发和修改速度 21

1.5.2团队速度 21

1.6顺序和过程式编程有什么问题 22

1.6.1顺序编程 22

1.6.2过程编程 22

1.6.3即时回报还是长期回报 23

第2章 OOP基本概念 25

2.1抽象 25

2.1.1抽象类 26

2.1.2抽象属性和方法 27

2.1.3接口 29

2.1.4接口和常量 31

2.1.5类型提示:类似数据类型 32

2.2封装 34

2.2.1日常生活中的封装 35

2.2.2通过可见性保护封装 35

2.2.3获取方法和设置方法 38

2.3继承 39

2.4多态 41

2.4.1一个名字,多个实现 43

2.4.2设计模式中的内建多态性 44

2.5慢慢来 44

第3章 基本设计模式概念 46

3.1 MVC实现编程松耦合和重新聚焦 46

3.2设计模式基本原则 48

3.2.1第一个设计模式原则 49

3.2.2代码提示中使用接口数据类型 50

3.2.3抽象类及其接口 51

3.2.4第二个设计模式原则 53

3.2.5使用客户的基本组合 54

3.2.6委托:IS-A和HAS-A的差别 58

3.3设计模式作为备忘录 58

3.4选择设计模式 59

3.4.1是什么导致了重新设计 60

3.4.2什么会变化 60

3.4.3设计模式与框架有什么区别 61

第4章 结合使用设计模式和UML 62

4.1为什么是统一建模语言(UML) 62

4.2类图 63

4.3参与者符号 64

4.4关系说明 66

4.4.1相识关系 66

4.4.2聚合关系 68

4.4.3继承和实现关系 70

4.4.4创建关系 72

4.4.5多重关系 73

4.5对象图 73

4.6交互图 74

4.7面向对象编程中图和记法的作用 75

4.8 UML工具 75

4.9其他UML 76

第2部分 创建型设计模式 81

第5章 工厂方法设计模式 81

5.1什么是工厂方法模式 81

5.2何时使用工厂方法 82

5.3最简单的例子 83

5.3.1工厂的工作 83

5.3.2客户 86

5.4适应类的修改 86

5.4.1增加图像元素 86

5.4.2调整产品 87

5.4.3修改文本产品 89

5.4.4修改图像产品 90

5.4.5增加新产品和参数化请求 91

5.4.6一个工厂多个产品 92

5.4.7新工厂 92

5.4.8新产品 93

5.4.9有参数的客户 95

5.4.10辅助类 96

5.4.11文件图 97

5.4.12产品改变:接口不变 97

第6章 原型设计模式 100

6.1原型设计模式 100

6.2何时使用原型模式 101

6.3克隆函数 102

6.3.1克隆不会启动构造函数 103

6.3.2构造函数不要做具体工作 104

6.4最简单的原型例子 105

6.5为原型模式增加OOP 108

6.5.1现代企业组织 109

6.5.2接口中的封装 109

6.5.3接口实现 111

6.5.4组织客户 113

6.5.5完成修改增加特性 115

6.5.6动态对象实例化 116

6.6 PHP世界中的原型 118

第3部分 结构型设计模式 123

第7章 适配器模式 123

7.1什么是适配器模式 123

7.2何时使用适配器模式 124

7.3使用继承的适配器模式 126

7.4使用组合的适配器模式 130

7.4.1从桌面环境转向移动环境 131

7.4.2适配器和变化 139

第8章 装饰器设计模式 140

8.1什么是装饰器模式 140

8.2何时使用装饰器模式 141

8.3最简单的装饰器例子 142

8.3.1 Component接口 142

8.3.2 Decorator接口 143

8.3.3具体组件 144

8.3.4具体装饰器 145

8.3.5客户 146

8.4关于包装器 148

8.4.1包装器包装基本类型 148

8.4.2 PHP中的内置包装器 148

8.4.3设计模式包装器 149

8.5包装多个组件的装饰器 150

8.5.1多个具体组件 150

8.5.2包含多个状态和值的具体装饰器 151

8.5.3开发人员约会服务 151

8.6 HTML用户界面 157

8.6.1 Client类传递HTML数据 161

8.6.2从变量名到对象实例 162

8.6.3增加装饰 162

第4部分 行为型设计模式 167

第9章 模板方法模式 167

9.1什么是模板方法模式 167

9.2何时使用模板方法 168

9.3最简单的例子:对图像和图题使用模板方法模式 169

9.3.1抽象类 169

9.3.2具体类 170

9.4客户 170

9.5好莱坞原则 171

9.6结合其他设计模式使用模板方法模式 173

9.6.1客户工作负担减轻 174

9.6.2模板方法参与者 174

9.7工厂方法参与者 175

9.8模板方法设计模式中的钩子 178

9.8.1建立钩子 180

9.8.2实现钩子 181

9.8.3客户以及捕获钩子 182

9.9短小精悍的模板方法模式 183

第10章 状态设计模式 185

10.1什么是状态模式 185

10.2何时使用状态模式 186

10.3状态机 187

10.4开灯关灯:最简单的状态设计模式 188

10.4.1情境为王 188

10.4.2状态 191

10.4.3客户通过上下文做出请求 193

10.5增加状态 194

10.5.1改变接口 194

10.5.2改变状态 195

10.5.3更新Context类 197

10.5.4更新客户 199

10.6导航工具:更多选择和单元格 199

10.6.1建立一个矩阵状态图 200

10.6.2建立接口 201

10.6.3上下文 202

10.6.4状态 204

10.6.5客户选择一条路径 210

10.7状态模式与PHP 212

第5部分 MySQL和PHP设计模式 215

第11章 通用类负责连接,代理模式保证安全 215

11.1一个简单的MySQL接口和类 215

11.1.1重要的接口 216

11.1.2通用MySQL连接类和静态变量 216

11.1.3简单客户 218

11.2保护代理完成登录 219

11.2.1建立登录注册 220

11.2.2实现登录代理 224

11.3代理和真实世界安全 230

第12章 策略设计模式的灵活性 232

12.1封装算法 232

12.1.1区分策略和状态设计模式 233

12.1.2请不要加条件语句 234

12.1.3算法族 234

12.2最简单的策略模式 235

12.2.1客户和触发器脚本 235

12.2.2 Context类和Strategy接口 239

12.2.3具体策略 240

12.3增加数据安全性和参数化算法来扩展策略模式 243

12.3.1数据安全性辅助类 243

12.3.2为算法方法增加参数 246

12.3.3调查表 246

12.3.4数据输入模块 248

12.3.5客户请求帮助 253

12.3.6 Context类重要的小改变 254

12.3.7具体策略 255

12.4灵活的策略模式 260

第13章 职责链设计模式 262

13.1推卸责任 262

13.2 MySQL咨询台中的职责链 264

13.2.1构建和加载响应表 264

13.2.2咨询台职责链 269

13.3自动职责链和工厂方法 274

13.3.1职责链和日期驱动请求 275

13.3.2工厂方法完成任务 278

13.4易于更新 284

第14章 利用观察者模式构建多设备CMS 285

14.1内置观察者接口 285

14.2何时使用观察者模式 286

14.3使用SPL实现观察者模式 287

14.3.1 SplSubject 288

14.3.2 SplObserver 289

14.3.3 SplObjectStorage 289

14.3.4 SPL具体主题 289

14.3.5 SPL具体观察者 291

14.3.6 SPL客户 291

14.4自由的PHP和观察者模式 293

14.4.1抽象Subject类和ConcreteSubject实现 293

14.4.2观察者和多个具体观察者 294

14.4.3客户 296

14.5建立一个简单CMS 298

14.5.1 CMS工具 298

14.5.2多个设备观察者 303

14.6用OOP方式思考 315