资讯专栏INFORMATION COLUMN

PHP设计模式(七):设计模式分类

tracymac7 / 1772人阅读

摘要:原文地址设计模式七设计模式分类根据目的和范围,设计模式可以分为五类。按照目的分为创建设计模式,结构设计模式,以及行为设计模式。与类的设计模式不同,对象设计模式主要用于运行期对象的状态改变动态行为变更等。

原文地址:PHP设计模式(七):设计模式分类

Introduction

根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象设计模式。下面分别介绍。

创建设计模式

创建设计模式(Creational patterns),用于创建对象时的设计模式。更具体一点,初始化对象流程的设计模式。当程序日益复杂时,需要更加灵活地创建对象,同时减少创建时的依赖。而创建设计模式就是解决此问题的一类设计模式。

结构设计模式

结构设计模式(Structural patterns),用于继承和接口时的设计模式。结构设计模式用于新类的函数方法设计,减少不必要的类定义,减少代码的冗余。

行为设计模式

行为设计模式(Behavioral patterns),用于方法实现以及对应算法的设计模式,同时也是最复杂的设计模式。行为设计模式不仅仅用于定义类的函数行为,同时也用于不同类之间的协议、通信。

类的设计模式

类的设计模式(Class patterns),用于类的具体实现的设计模式。包含了如何设计和定义类,以及父类和子类的设计模式。

对象设计模式

对象设计模式(Object patterns),用于对象的设计模式。与类的设计模式不同,对象设计模式主要用于运行期对象的状态改变、动态行为变更等。

为什么会重构?

重构通常是由于现有程序的框架不能很好的适应新需求,虽然可以通过硬编码(hardcode)或者绕过(bypass)的方式来解决一个新需求,但这并不是长久之计。当新需求越来越多时,现在程序会越来越冗余,导致最后的不可维护。

架构和设计模式的区别

相比架构(frameworks),设计模式是一些抽象的组成架构的元素,且更为灵活通用。
架构更适合解决具体问题,使用架构构建应用程序将更为快捷,不过相比设计模式,架构牺牲了灵活性。

Summary

本文介绍了设计模式的分类,后面我们将分别介绍各种设计模式。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21645.html

相关文章

  • PHP设计模式(十):适配器模式

    摘要:原文地址设计模式十适配器模式在设计模式七设计模式分类中我们提到过结构设计模式,结构设计模式专注于设计对象和实例的构建组合过程。适配器模式在不修改现有代码的基础上,保留了架构。 原文地址:PHP设计模式(十):适配器模式 Introduction 在PHP设计模式(七):设计模式分类中我们提到过结构设计模式(Structural patterns),结构设计模式专注于设计对象(Objec...

    paney129 评论0 收藏0
  • PHP设计模式(八):工厂模式

    摘要:原文地址设计模式八工厂模式在设计模式七设计模式分类中我们提到过创建设计模式,创建设计模式专注于设计对象和实例的创建过程。工厂模式工厂模式,也是五种设计模式中唯一的类的设计模式,即在类中就能实现的设计模式。 原文地址:PHP设计模式(八):工厂模式 Introduction 在PHP设计模式(七):设计模式分类中我们提到过创建设计模式(Creation patterns),创建设计模式专...

    sorra 评论0 收藏0
  • PHP框架之ThinkPHP模块开发系列八,无限级分类的删除

    摘要:我们在新建一个删除前的钩子函数,再利用递归方法实现子栏目的删除。最后我们删除把钩子函数恢复到原始状态在浏览器中输入,然后点击美国一栏中的删除,此时会同时删除美国下的纽约。至此,无限级分类的删除功能操作完毕。 在此现更正一下之前的预告,之前忘记了先应该把无限级分类栏目列表功能做完,也就是删除功能还没做,所以今天我们先做删除,下一节再做面包屑导航。非常抱歉。 同时,不知道是什么原因,上一节...

    BWrong 评论0 收藏0
  • 教你从零开始使用wordpress生成微信小程序(小白版教程)

    摘要:准备工作服务器最好使用服务器,小白推荐安装宝塔面板。备案域名小程序账号建议注册企业账号,可以使用已认证的公众号快速创建。七牛账号使用,加快网站访问速度。如需使用小程序发帖,也会用到。注意不要使用以下的。 showImg(https://segmentfault.com/img/bVUUeU?w=600&h=280); 准备工作 1服务器 最好使用Linux服务器,小白推荐安装宝塔面板。...

    jaysun 评论0 收藏0

发表评论

0条评论

tracymac7

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<