thinkphp5用了哪些设计模式

发布时间 - 2019-08-23 00:00:00    点击率:

一、设计模式简介

首先我们来认识一下什么是设计模式:
设计模式是一套被反复使用、容易被他人理解的、可靠的代码设计经验的总结。
设计模式不是Java的专利,我们用面向对象的方法在PHP里也能很好的使用23种设计模式。

那么我们常说的架构、框架和设计模式有什么关系呢?
架构是一套体系结构,是项目的整体解决方案;框架是可供复用的半成品软件,是具体程序代码。架构一般会涉及到采用什么样的框架来加速和优化某部分问题的解决,而好的框架代码里合理使用了很多设计模式。

相关推荐:《ThinkPHP教程》

二、提炼设计模式的几个原则:

(1)开闭原则:模块应对扩展开放,而对修改关闭。
(2)里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行。
(3)依赖倒转原则:抽象不依赖细节,面向接口编程,传递参数尽量引用层次高的类。
(4)接口隔离原则:每一个接口只负责一种角色。
(5)合成/聚合复用原则:要尽量使用合成/聚合,不要滥用继承。

三、设计模式的功用?

设计模式能解决替换杂乱无章的代码,形成良好的代码风格代码易读,工程师们都能很容易理解增加新功能时不用修改接口,可扩展性强
稳定性好,一般不会出现未知的问题设计模式不能解决:

(1)设计模式是用来组织你的代码的模板,而不是直接调用的库;
(2)设计模式并非最高效,但是代码的可读性和可维护性更重要;
(3)不要一味追求并套用设计模式,重构时多考虑。

四、设计模式分类

1、创建型模式:

单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、创建者模式、原型模式。

2、结构型模式:

适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

3、行为型模式:

模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。


# 复用  # 的是  # 几个  # 很好  # 子类  # 是一套  # 都能  # 也能  # 很容易  # 杂乱无章 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: iOS UIView常见属性方法小结  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  网站页面设计需要考虑到这些问题  使用spring连接及操作mongodb3.0实例  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  在centOS 7安装mysql 5.7的详细教程  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  如何在Tomcat中配置并部署网站项目?  zabbix利用python脚本发送报警邮件的方法  油猴 教程,油猴搜脚本为什么会网页无法显示?  C++时间戳转换成日期时间的步骤和示例代码  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何获取上海专业网站定制建站电话?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel如何处理和验证JSON类型的数据库字段  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Python文件操作最佳实践_稳定性说明【指导】  如何用花生壳三步快速搭建专属网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  如何在万网主机上快速搭建网站?  如何注册花生壳免费域名并搭建个人网站?  如何快速启动建站代理加盟业务?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel如何使用Blade模板引擎?(完整语法和示例)  php 三元运算符实例详细介绍  制作电商网页,电商供应链怎么做?  如何将凡科建站内容保存为本地文件?  Laravel如何实现一对一模型关联?(Eloquent示例)  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  深圳网站制作培训,深圳哪些招聘网站比较好?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  教你用AI将一段旋律扩展成一首完整的曲子  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  微信小程序 wx.uploadFile无法上传解决办法  音响网站制作视频教程,隆霸音响官方网站?  Android GridView 滑动条设置一直显示状态(推荐)  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何快速搭建支持数据库操作的智能建站平台?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  常州企业网站制作公司,全国继续教育网怎么登录?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  ,在苏州找工作,上哪个网站比较好?  JavaScript如何操作视频_媒体API怎么控制播放  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel怎么连接多个数据库_Laravel多数据库连接配置  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?