Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架。git
《设计模式》一书虽然以JAVA语言来表达设计模式的思想,可是设计模式远不限制于某一种特定的语言,而是在面向对象编程中通用的思想,各个语言也都有各自的实现方式。github
Yii 2 是一款优秀的 PHP Web 框架,Yii2 框架的里里外外都借鉴了不少设计模式的思想。并且,越是 Yii2 内核的部分,设计模式运用的越多。一样的,其余优秀的框架如 Symphony2/Laravel 也是如此,学习 Yii2 的设计模式,无疑对认识其余框架,对提升本身编码能力,加深对软件设计的认识都很是有帮助。数据库
Yii2 设计模式,集中体如今依赖注入(di),服务定位器(service locator),数据库(db),缓存(cache),请求(Request),响应(Response)等核心组件上。编程
根据使用目的设计模式通常可为分为三类:设计模式
具体都有哪些,网上资料随便一搜便出来了,笔者在这里再也不列出来。缓存
《设计模式》提到的 23 中经典设计模式,PHP 都有本身实现的方式,其中有些模式用的并很少,此外 PHP 中还有别的一些经常使用的模式,它们都有:框架
依赖注入模式(DependencyInjection)dom
服务定位器模式(ServiceLocator)学习
MVC模式ui
对象池模式(Pool)
数据访问对象模式(DAO)
流接口模式(Fluent Interface)
规约模式(Specification)
委托模式(Delegation)
Repository模式
...
经笔者的概括,Yii2用到的设计模式主要由下面的这些,根据类型可概括为:
Yii2中设计模式,有些并不严格遵循《设计模式》中标准的定义和使用方法,甚至有时会表现出很大的差别性。但好在“形散而神不散”,细节虽偶有不一样而精髓倒是同样的。笔者将会帮助读者发现这些”隐藏极深“的使用技巧。
虽然笔者聊的对象是Yii2框架,然而实际目的是使你们熟悉设计模式,顺带的再聊下六大设计原则。最终的目的是提高你们在实际编码中的能力。
最后,给你们推荐一个好的开源项目 DesignPatternsPHP,对PHP全部经常使用的模式都有介绍和源码。另外,笔者本身的开源项目 design-pattern 也介绍了 PHP 经常使用的设计模式,你们均可结合着学习下。