PHP中5种常用设计模式_第1页
PHP中5种常用设计模式_第2页
PHP中5种常用设计模式_第3页
PHP中5种常用设计模式_第4页
PHP中5种常用设计模式_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP设计模式,PHP Design Pattern,01,面向对象(Object Oriented),02,设计模式(Design Pattern),03,概述23种设计模式,04,细说5种常用设计模式,05,总结,目录,content,OO 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP,面向过程 关注做事情的步骤 关注数据的加工存储 使用结构化方法分析设计 适合瀑布模型开发,面向对象 关注对现实世界的建模还原 使用面向对象方法分析设计 适合RUP、敏捷等模型开发,OO设计基本原则,开闭原则OCP:对扩展开放,对修改关闭 单一职责SRP:一个类只

2、做一件事 里氏替换LSP:子类必须能够替换所有父类的使用 依赖倒置DIP:设计依赖于抽象而不是实现 最少知识DP:对象应当尽可能少的去了解其他对象 接口隔离ISP:接口倾向于小而多 组合优先CRP:优先使用类的组合而不是继承 参考:,3大类设计模式,创建型模式(5种) 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。 结构型模式(7种) 用于帮助将多个对象组织成更大的结构。 行为型模式(11种) 用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。,5种创建型模式,工厂模式(Factory Pattern) 单例模式(

3、Singleton Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern),7种结构型模式,适配器模式(Adapter Pattern) 装饰器模式(Decorator Pattern) 代理模式(Proxy Pattern) 外观模式(Facade Pattern) 桥接模式(Bridge Pattern) 组合模式(Composite Pattern) 享元模式(Flyweight Pattern),11种行为型模式,策略模式(Strategy Pattern) 模板模

4、式(Template Pattern) 观察者模式(Observer Pattern) 迭代子模式(Iterator Pattern) 责任链模式(Chain of Responsibility Pattern) 命令模式(Command Pattern) 备忘录模式(Memento Pattern) 状态模式(State Pattern) 访问者模式(Visitor Pattern) 中介者模式(Mediator Pattern) 解释器模式(Interpreter Pattern),PHP中的接口,使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内

5、容。 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义的所有方法都是空的。 接口中定义的所有方法都必须是公有,这是接口的特性。 参考:,接口实现(implements),类可以实现多个接口,用逗号来分隔多个接口的名称。 实现多个接口时,接口中的方法不能有重名。 接口也可以继承,通过使用 extends 操作符。 类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。 接口中也可以定义常量。接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。,类的关系,依赖(Dependence) 关联(Association) 聚合(Agg

6、regation) 组合(Composition) 继承(Generalization) 实现(Implementation) 耦合度:由上到下依次增强 参考:,5种常用模式,单例模式 工厂模式 策略模式 命令模式 观察者模式,单例模式(Singleton),确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式根据实例化对象时机的不同分为两种: 饿汉式单例:在单例类被加载时候,就实例化一个对象交给自己的引用 懒汉式单例:在调用取得实例方法的时候才会实例化对象 参考:,工厂模式(Factory),定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化

7、延迟到其子类。 工厂模式根据抽象程度的不同分为三种: 简单工厂模式(也叫静态工厂模式) 工厂方法模式(大话设计模式上的UML图) 抽象工厂模式 参考:,策略模式(Strategy),定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户 参考:大话设计模式,商场促销,命令模式(Command),定义:将一个请求封装为一个对象,从而是你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 作用: 能比较容易的设计一个命令队列 可以比较容易的将命令记入日志 允许接受请求的一方决定是否要否决请求 可以容易的实现对请求的撤销和重做

8、 新增不会印象到其他命令 实现了调用对象和执行对象 参考:大话设计模式命令模式,观察者模式(Observer),定义:一种一对多的以来关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 观察者模式是“依赖倒置原则”的最好体现 观察者模式所做的工作其实就是在接触耦合。让耦合的双方都以来抽象,而不是依赖于具体。从而是的各自的变化都不会影响到另一边的变化。 参考:,思考题,ThinkPHP中如何应用设计模式?,总结,设计模式和数据结构一样是软件开发的内功 设计模式的目的是降低软件的复杂度 学习设计模式应该先“记住”再“忘记” 光看是学不会的,一定要多实践 如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧 重要的不是你将来会不会用这些模式,而是通过这些模式让你找到“封装变化”、“对象间松散耦合”、“针对接口编程”的感觉,从而设计出易维护、易扩展、易复用、灵活性好的程序,参阅(附件及代码下载地址:,菜鸟教程设计模式 视频:慕课网大话PHP设计模式 附件:经典文档-23种设计模式.docx(有所有设计模式的UML类图,无代码) 附件:Java各种设计模式详解(整理版).doc(很详细,有代码) 附件:24种设计模式介绍与6大设计原则.pdf(要是觉得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论