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

大话PHP设计模式

Rango PHP开发工程师
难度中级
时长 3小时30分
学习人数
综合评分9.57
139人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.6 逻辑清晰
  • 基本原则
    查看全部
  • 编程推荐字体
    查看全部
  • namespace 内部使用 外部使用 动态访问元素(例如,变量函数) 非限定名称 √ × × 限定名称 × √ × 完全限定名称 √ √ √
    查看全部
    1 采集 收起 来源:关于命名空间

    2017-06-13

  • 定义命名空间 只有以下类型的代码受命名空间的影响,它们是:类(包括抽象类和traits)、接口、函数和常量. 命名空间通过关键字namespace来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了一个以外:declare关键字。 namespace MyProject3 { // MyProject3 命名空间中的PHP代码 } 如果要动态访问元素(例如,变量函数),必须使用完全限定名称
    查看全部
    1 采集 收起 来源:关于命名空间

    2017-06-13

  • 编程字体 1.等宽字体 2.Courier New、Consolas 推荐字体 source code pro
    查看全部
  • 111
    查看全部
  • <?php namespace IMooc\Config; class Conf implements \ArrayAccess{ private $path; private $configs = array(); public function __construct($path) { $this->path=$path; } function offsetGet($offset) { if(empty($this->configs[$offset])){ $path=$this->path.'/'.$offset.'.php'; $config=require_once $path; $this->configs[$offset]=$config; } return $this->configs[$offset]; } function offsetSet($offset, $value) { throw new \Exception("cannot write config file!"); } public function offsetExists($offset) { return isset($this->configs[$offset]); } public function offsetUnset($offset) { unset($this->configs[$offset]); } }
    查看全部
    0 采集 收起 来源:自动加载配置

    2018-03-22

  • <?php /** * 迭代器模式. */ namespace IMooc\Iterator; class UserAll implements \Iterator { private $users; private $index=0; function __construct(array $users) { $this->users = $users; } function key() { return $this->index; } function next() { return $this->index++; } function valid() { return isset($this->users[$this->index]); } function rewind() { $this->index=0; } function current() { return $this->users[$this->index]; } }
    查看全部
  • >>> 面向对象编程的基本原则 1. 单一职责:一个类,只需做好一件事情。不要使用一个类来完成很复杂的功能,而是拆分设计成更小更具体的类。 2. 开放封闭原则:一个类,应该可以扩展,而不可修改的。一个类在实现之后,应该是对扩展开放,对修是改封闭的,不应该使用修改来增加功能,而是通过扩展来增加功能。 3. 依赖倒置:一个类,不应该强制依赖另一个类。每个类对另外一个类都是可以替换的。如:有A、B两个类,A需要依赖B类,不应该在A类中直接调用B类,而是要使用依赖注入的方式,通过使用诸如,将A类依赖的B类的对象注入给A类,B类对于A类来说就是可以替换的。如果C类实现了和B类一样的接口,那对于A类,B和C也是可以随意替换的。 4. 配置化: 尽可能的使用配置,而不是使用硬编码。像类的关系的定义,也应该是可以配置的。 5. 面向接口编程,而不是面向实现编程:只需要关心接口,不需要关心实现。所有的代码,它只需要关心某一个类实现了哪些接口,而不需要关心这个类的具体实现。
    查看全部
  • 谢谢老师,辛苦了。
    查看全部
    0 采集 收起 来源:课程小结

    2017-05-29

  • >>> 迭代器模式 1. 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素 2. 相比传统的编程模式,迭代器模式可以隐藏遍历元素所需的操作 >>> 应用场景 遍历数据库表,拿到所有的user对象,然后用佛 foreach 循环,在循环的过程中修改某些字段的值。
    查看全部
  • static function getUser($id){ $objUserKey='user_'.$id; $user=Register::get($objUserKey); if(!$user){ $user=new User($id); Register::set($objUserKey,$user); } return $user; } class Page{ function index(){ $this->setName(); $this->setMobile(); } function setName(){ $user=\Imooc\Factory::getUser(1); $user->name='Mary'; $user->save(); } function setMobile(){ $user=\Imooc\Factory::getUser(1); $user->mobile='13600000000'; $user->save(); } } $page=new Page(); $page->index();
    查看全部
  • >>> 原型模式 1. 与工厂模式作用类似,都是用来创建对象 2. 与工厂模式的实现不懂,原型模式是首先创建好一个原型对象,然后通过clone原型对象来创建新的对象。这样就免去了类创建是重复的初始化操作 3. 原型模式适用于大对象的创建。创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可
    查看全部
    1 采集 收起 来源:[php]原型模式

    2018-03-22

  • >>> 观察者模式 1. 观察者模式( Observer ),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新 2. 场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多后,代码会变得难以维护。这种方式是耦合的,入侵式的,增加新的逻辑需要修改事件主体的代码 3. 观察者模式实现了低耦合,非入侵式的通知与更新机制
    查看全部
  • 栈,入栈
    查看全部
    0 采集 收起 来源:SPL标准库简介

    2017-05-23

举报

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

微信扫码,参与3人拼团

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

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