为了账号安全,请及时绑定邮箱和手机立即绑定

大话PHP设计模式

Rango PHP开发工程师
难度中级
时长 3小时30分
学习人数
综合评分9.57
139人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.6 逻辑清晰
  • 原型模式,只需实例化一次,从而节省内存开销。

    $prototype = new IMooc\Canvas();

    $prototype->init(); 初始化方法。

    $canvas1= clone $prototype;

    $canvas2 = clone $prototype;

    通过引用clone的方式。

    查看全部
    0 采集 收起 来源:[php]原型模式

    2019-06-05

  • <?php

    $stack = new SplStack(); //堆栈模式

    $stack->push("aaa");

    $stack->push("bbb");

    // echo $stack->pop();

    // echo $stack->pop();


    $queue = new SplQueue(); //队列

    $queue->enqueue('aaa');

    $queue->enqueue('bbb');


    // echo $queue->dequeue();

    // echo $queue->dequeue();


    $heap = new SplMinHeap(); //入栈

    $heap->insert('aaa');

    $heap->insert('bbb');

    // echo $heap->extract();

    // echo $heap->extract();


    $array = new SplFixedArray(10); //数组

    $array[0] = 'aaa';

    $array[9] = 'zzz';

    // print_r($array);


    //PHP 链式操作 $dbModel->file()->where()->order()->limit();

    //方法最后加 return $this;

    class StringHelper 

    {

      private $value;

      function __construct($value)

      {

        $this->value = $value;

      }

      function __call($function, $args){

        array_unshift($args, $this->value);

        $this->value = call_user_func_array($function, $args);

        return $this;

      }

      function strlen() {

        return strlen($this->value);

      }

    }

    $str = new StringHelper("xxx");

    echo $str->trim('0')->strlen();

    ?>


    查看全部
    0 采集 收起 来源:SPL标准库简介

    2019-06-05

  • 自动加载类

    function  autolod($class){

    require __DIR__.'/'.$class.'.php';

    }

    spl_autoload_register('autoload');


    查看全部
    0 采集 收起 来源:类自动载入

    2019-06-05

  • easy php
    查看全部
  • protected $db;   //申明一个保护属性

    private function __construct()

    {

    //构造一个私有方法

    }

    static function getInstance()     // getInstance 获取实例

    {

    if(self::$db){

        return self::$db;

    }else{

        self::$db = new self();

        return self::$db

    }

    }

    查看全部
    0 采集 收起 来源:[php]单例模式

    2019-03-19

  • 工厂模式 单例模式
    查看全部
    0 采集 收起 来源:[php]单例模式

    2019-03-18

  • __set,__get 设置或者获取不存在的属性 __call,__callStatic 调用不存在的方法或类的方法 __toString 把类当字符串使用 __invoke 把类当函数使用
    查看全部
  • __autoload()函数已经废弃
    查看全部
    0 采集 收起 来源:类自动载入

    2019-03-18

  • 设计模式跟语言没关系,是一种思想
    查看全部
  • 开发符合psr-0规范的基础框架

    查看全部
    • 装饰器(Decorator),可以动态地添加修改类的功能

    • 一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法

    • 使用装饰器模式,仅需要在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性



    查看全部
    • 在本案例中index.php中的Page类即使用策略的环境,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。

    • UserStrategey即抽象策略类,它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策略类中声明的方法在运行时调用具体策略类中实现的算法。

    • FemaleUserStrategy和MaleUserStrategy是具体的策略类,它实现了在抽象策略类中声明的算法,在运行时,具体策略类将覆盖在环境类中定义的抽象策略类对象,使用一种具体的算法实现某个业务处理。


    查看全部
  • 工厂模式获取对象

    查看全部
  • 定义代理类

    查看全部
  • 入口文件调用代理

    查看全部

举报

0/150
提交
取消
课程须知
要想更好的掌握本课课程的重点内容,那么熟知面向对象的相关知识是必不可少的。
老师告诉你能学到什么?
1、了解PHP的11种设计模式 2、掌握设计模式的编程实现 3、具备使用设计模式进行面向对象编程的能力

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!