位置:首页  >   读书笔记  > php全栈学习-第十六讲-设计模式

php全栈学习-第十六讲-设计模式

面向对象的六大原则

1.单一职责原则 SRP

2,开闭原则:模块应对扩展开放,而对修改关闭OCP

3,里氏代换原则:子类必须能替换掉父类LSP

4,依赖倒转原则:父类不依赖子类,抽象不依赖具体DIP

5,接口隔离原则:职责单一,承若最简ISP

6,组合复用原则:尽量使用组合,避免滥用继承CRP


设计模式的有点?

提高程序运行效率

 简化软件系统设计


类图UML

        继承

        实现,依赖

        聚合,组合

    用例图

    活动图

    实现图

    时序图

    状态图

    组合图

23中设计模式

    一句话,一幅图,一段代码

    1.单例模式

        注意构造函数要私有化

    function getInstance(){

        if(self::$conn)

        {

            return self::$conn;

        }

        self::$conn = new DBConn();

        return self::$conn;

    }

        //php是单线程,不会有问题,如果是java这样多线程,可能出现问题

        //java 可使用同步关键字,

        或者getINstance(){

        return self::$conn; //直接返回

        }

        在私有属性中直接

            private static $conn = new DBConn();

    2. 遍历,iterator 模式

    3. 装饰器

        对现有对象的内容或者功能性稍加修改,

    4. 工厂模式 


    5.mediator

        新增中间者,协调

    6. adapter

        需要转化一个对象的接口用于另一个对象。

        例如 apc memcache ,redis 适配

    7. template

            子类,不同实现.多态

    8.builder

        消除其他对象的复杂创建过程,builder

        例如:配置

    9, prototype

        低成本方式创建较高成本的新实例

    10,统一成一样的接口供外部调用

        bridge

    11,组合

    12,facade  门面模式

        用一个对外联络者负责处理一堆关联对象的事情

    13,复杂多样的需求,由统一的对象对此进行屏蔽,delegate

    14,proxy

    15,解释器

        如view模板

    16,memo 备忘录

    17,observer

            事件发生,通知关联对象处理

    18,决策,策略模式

    19,command命令模式

    20,flyweight

        节省内存空间(连接池),公用对象,加快速度

    21,责任链模式,chain

    22,state 状态模式

    

三大类,创建模式,结构模式,行为模式


        



0
文章属性
精彩评论