php设计模式及耦合性和多形性
什么是设计模式:
设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板。
所有的设计模式都有一些常用的特性:一个标识(a name),一个问题陈述(a problem statement)和一个解决方案(a solution)。
1、一个设计模式的标识是重要的,因为它会让其他的程序员不用进行太深入的学习就能立刻理解你的代码的目的(至少通过这个标识程序员会很熟悉这个模式)。
2、问题描述是用来说明这个模式的应用的领域。
3、解决方案描述了这个模型的执行。一个好的设计模式的论述应该覆盖使用这个模型的优点和缺点。
比如,你从店铺里面买的一件衬衫是一个代码库,它的颜色,样式和大小都由设计师和厂商决定,但它满足了你的需求。然而,如果店里面没有什么衣服适合你,那你就能自己创建自己的衬衫(设计它的形状,选择布料,然后裁缝在一起)。但是如果你不是一个裁缝,你可能会发现自己很容易的去找一个合适的模式然后按着这个模式去设计自己的衬衫。使用一个模型,你可以在更少的时间内得到一个熟练设计的衬衫。
php一共有传统的23种设计模式,
Interpreter(解释器模式),Factory(工厂模式),Facade(外观模式),Decorator(装饰模式),Builder(建造者模式)
Adapter(适配器模式),Template (模板模式),Command(命令链模式),Singleton(单例模式),Observer(观察者模式)
Strategy(策略模式),Visitor (访问者模式),Memento (备忘录模式),Prototype (原型模式),Mediator (中介者模式)
FlyWeight (享元模式),Chain Of Responsibility (职责链模式),Bridge (桥接模式),Proxy (代理模式),State (状态模式)
Composite (组合模式),Interator (迭代器模式),DAO(数据访问对象模式),Delegation(委托模式)
其中有五种php常见的设计模式
1.工厂模式 2.单例模式(单元素模式)3.观察者模式 4.命令链模式 5.策略模式
什么是耦合:
耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合
什么是多形性:
“对于面向对象的程序设计语言,多型性是第三种最基本的特征(前两种是数据抽象和继承。”
“多形性”(Polymorphism)从另一个角度将接口从具体的实施细节中分离出来,亦即实现了“是什么”与“怎样做”两个模块的分离。利用多形性的概念,代码的组织以及可读性均能获得改善。此外,还能创建“易于扩展”的程序。无论在项目的创建过程中,还是在需要加入新特性的时候,它们都可以方便地“成长”。
php设计模式及耦合性和多形性相关推荐
- C++设计模式-继承与多态影响耦合性(最基础的简单工厂模式小实例)
继承与多态影响耦合性(最基础的简单工厂模式小实例) 原理: 通过继承和虚函数的方式修改某个子类对应函数的功能: 通过简单工厂模式到底实例化谁; 如果要增加复杂的运算只有增加响应的子类,以及工厂的分支即 ...
- java 耦合性_软件工程中的耦合性和解耦合性是什么意思?
我也来通俗地讲一讲,说的不好请勿喷. 简单概括:耦合就是程序中的一部分跟其他部分之间的关系.解耦合就是把必要的耦合理顺,同时尽量减少不必要的耦合(这一句其实就是高内聚低耦合的通俗解释). 如何看待耦合 ...
- 第一章--Spring工厂设计模式消除耦合
1.什么是Spring Spring是一个轻量级的JavaEE解决方案,整合众多优秀的设计模式 - 轻量级 1.对于运行环境是没有额外要求的 开源 tomcat resion jetty 收费 web ...
- 内容耦合 c语言例子,耦合性 内聚加实例
基本信息 耦合性(或称"耦合度") 英文 : coupling 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块之间 ...
- 21 利用分布式消息队列降低系统耦合性
国内某大型互联网企业经常因为对同行的产品进行微创新,然后推岀自己的产品而遭人诟病,不讨论这种做法是否合适,我们分析这些产品,发现大多数都比原创产品有 更好的用户体验.这些产品常常后来居上,更速度地推岀 ...
- 干货!C++程序的耦合性设计
1.什么是耦合? 耦合其实就是程序之间的相关性. 程序之间绝对没有相关性是不可能的,否则也不可能在一个程序中启动,如下图: 这是一个Linux中socket TCP编程的程序流程图,在图中的TCP服务 ...
- 软件架构设计之系统耦合性拆分
软件架构设计之系统模块的拆分 基本概念 功能模块 循环依赖问题 模块拆分原则 高内聚性 低耦合性 模块拆分方式 模块拆分示例 业务需求 业务分析 项目原始代码 需求重构 项目代码重构 总结 基本概念 ...
- 在C语言中数据耦合例子,耦合性 内聚加实例 - osc_yip56055的个人空间 - OSCHINA - 中文开源技术交流社区...
基本信息 耦合性(或称"耦合度") 英文 : coupling 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块之间 ...
- 浅谈Redis与MySQL的耦合性以及利用管道完成MySQL到Redis的高效迁移
㈠ Redis 与 MySQL 的耦合性 在业务架构早期.我们便该"吃着碗里的看着锅里的".切莫让MySQL 有梦.而Redis 无心 毕竟.有些关系型的结构不适合放到Redis跑 ...
最新文章
- php多个域名301重定向到主域名代码,Nginx 301和apache重定向域名规则方法(多个域名,单个域名)...
- 对等网不要求文件服务器,对等网文件共享技术研究与应用
- 基于OHCI的USB主机 —— UFI数据结构1
- 快速选择思维导图软件,就是这么任性
- Python的定义编码以及注释等
- 行业场景智能应用,解锁边缘计算时代新机遇
- 容器技术标准化大统一,首个开放容器标准 OCI 1.0 正式发布
- http dns django
- 线性代数:矩阵学习笔记
- 【华为云技术分享】数据赋能,如何精细化保障企业大数据安全
- 计算机计算资源估计,项目时间管理中的计算题三点估算和关键路径法
- 实验楼Python项目
- 《剑指offer》面试题21——包含min函数的栈(C++)
- 错误: 找不到或无法加载主类 org.apache.tools.ant.launch.Launcher
- 有一种爱情,叫沉、重!
- 美国电话卡原生卡和虚商卡区别
- stm32f4产生100k正弦波_STM32_DAC 实验(正弦波_方波_锯齿波_发生器)
- tableau public使用形状文件进行数据可视化
- 使用echarts-gl 绘制3D地球配置详解
- 核心单词Word List 9