文档详情

PHP中5种常用设计模式精选.pptx

发布:2017-06-03约3.19千字共21页下载文档
文本预览下载声明
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:一个类只做一件事 里氏替换LSP:子类必须能够替换所有父类的使用 依赖倒置DIP:设计依赖于抽象而不是实现 最少知识DP:对象应当尽可能少的去了解其他对象 接口隔离ISP:接口倾向于小而多 组合优先CRP:优先使用类的组合而不是继承 参考:/jhq0113/article/details3大类设计模式 创建型模式(5种) 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对 象的方式,从而保证更大的性能、更好的架构优势。 结构型模式(7种) 用于帮助将多个对象组织成更大的结构。 行为型模式(11种) 用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。 5种创建型模式 工厂模式(Factory Pattern) 单例模式(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) 模板模式(Template Pattern) 观察者模式(Observer Pattern) 迭代子模式(Iterator Pattern) 责任链模式(Chain of Responsibility Pattern) 命令模式(Command Pattern) 备忘录模式(Memento Pattern) 状态模式(State Pattern) 访问者模式(Visitor Pattern) 中介者模式(Mediator Pattern) 解释器模式(Interpreter Pattern) PHP中的接口 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义的所有方法都是空的。 接口中定义的所有方法都必须是公有,这是接口的特性。 参考:/manual/zh/erfaces.php 接口实现(implements) 类可以实现多个接口,用逗号来分隔多个接口的名称。 实现多个接口时,接口中的方法不能有重名。 接口也可以继承,通过使用 extends 操作符。 类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。 接口中也可以定义常量。接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。 类的关系 依赖(Dependence) 关联(Association) 聚合(Aggregation) 组合(Composition) 继承(Generalization) 实现(Implementation) 耦合度:由上到下依次增强 参考:/zhengzhb/article/details/7187278 5种常用模式 单例模式 工厂模式 策略模式 命令模式 观察者模式 单例模式(Singleton) 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式根据实例化对象时机的不同分为两种: 饿汉式单例:在单例类被加载时候,就实例化一个对象交给自己的引用 懒汉式单例:在调用取得实例方法的时候才会实例化对象 参考:/zhengzhb/article/details/7331369 工厂模式(Factory) 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 工厂模式根据抽象程度的不同分为三种: 简单工厂模式(也叫静态工厂模式) 工厂方法模式(大话设计模式上的UML图
显示全部
相似文档