欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Yii2设计模式——Yii2中用到哪些设计模式?

程序员文章站 2022-04-05 11:30:52
Yii2框架的设计包含了哪些设计模式?用到了哪些设计原则,本文将概括地为您做下介绍 ......

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

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

yii2是一款优秀的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所有常用的模式都有介绍和源码。另外,笔者自己的开源项目 也介绍了php常用的设计模式,大家都可结合着学习下。