米粒人生 2018-12-12 10:48:28 6508次浏览 1条评论 8 14 0

Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架。

《设计模式》一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语言,而是在面向对象编程中通用的思想,各个语言也都有各自的实现方式。

Yii 2 是一款优秀的 PHP Web 框架,Yii2 框架的里里外外都借鉴了很多设计模式的思想。而且,越是 Yii2 内核的部分,设计模式运用的越多。同样的,其他优秀的框架如 Symphony2/Laravel 也是如此,学习 Yii2 的设计模式,无疑对认识其他框架,对提高自己编码能力,加深对软件设计的认识都非常有帮助。

Yii2 设计模式,集中体现在依赖注入(di),服务定位器(service locator),数据库(db),缓存(cache),请求(Request),响应(Response)等核心组件上。

PHP设计模式

根据使用目的设计模式一般可为分为三类:

  • 创建型模式(Creational Patterns)
  • 结构型模式(Structural Patterns)
  • 行为型模式(Behavioral Patterns)

具体都有哪些,网上资料随便一搜便出来了,笔者在这里不再列出来。

《设计模式》提到的 23 中经典设计模式,PHP 都有自己实现的方式,其中有些模式用的并不多,此外 PHP 中还有别的一些常用的模式,它们都有:

  • 依赖注入模式(DependencyInjection)

  • 服务定位器模式(ServiceLocator)

  • MVC模式

  • 对象池模式(Pool)

  • 数据访问对象模式(DAO)

  • 流接口模式(Fluent Interface)

  • 规约模式(Specification)

  • 委托模式(Delegation)

  • Repository模式

    ...

Yii2设计模式

经笔者的归纳,Yii2用到的设计模式主要由下面的这些,根据类型可归纳为:

创建型

  • 单例(Singleton)
  • 工厂方法(FactoryMethod)
  • 抽象工厂(AbstractFactory)
  • 建造者(Builder)
  • 原型(Prototype)
  • 对象池(Pool)

行为型

  • 观察者(Observer)
  • 策略(Strategy)
  • 模板方法(TemplateMethod)
  • 迭代器(Iterator)

结构型

  • 组合(Composite)
  • 适配器(Adaptor)
  • 桥接(Bridge)
  • 装饰器(Decorator)
  • 外观(Facade)
  • 依赖注入(DependencyInjection)
  • 流接口模式(Fluent Interface)
  • 数据访问对象模式(DAO)

其他

  • 服务定位器(ServiceLocater)
  • MVC
  • 委托模式(Delegation)

Yii2中设计模式,有些并不严格遵循《设计模式》中标准的定义和使用方法,甚至有时会表现出很大的差异性。但好在“形散而神不散”,细节虽偶有不同而精髓却是一样的。笔者将会帮助读者发现这些”隐藏极深“的使用技巧。

虽然笔者聊的对象是Yii2框架,然而实际目的是使大家熟悉设计模式,顺带的再聊下六大设计原则。最终的目的是提升大家在实际编码中的能力。

最后,给大家推荐一个好的开源项目 DesignPatternsPHP,对PHP所有常用的模式都有介绍和源码。另外,笔者自己的开源项目 design-pattern 也介绍了 PHP 常用的设计模式,大家都可结合着学习下。

原文链接: https://blog.csdn.net/qq_24127857/article/details/84967576

觉得很赞
  • 评论于 2018-12-21 18:10 举报

    谢谢推荐!期待哪天大神用一些易懂的例子来讲讲设计模式的故事!

您需要登录后才可以评论。登录 | 立即注册