-
原型模式,只需实例化一次,从而节省内存开销。
$prototype = new IMooc\Canvas();
$prototype->init(); 初始化方法。
$canvas1= clone $prototype;
$canvas2 = clone $prototype;
通过引用clone的方式。
查看全部 -
<?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();
?>
查看全部 -
自动加载类
function autolod($class){
require __DIR__.'/'.$class.'.php';
}
spl_autoload_register('autoload');
查看全部 -
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
}
}
查看全部 -
工厂模式 单例模式查看全部
-
__set,__get 设置或者获取不存在的属性 __call,__callStatic 调用不存在的方法或类的方法 __toString 把类当字符串使用 __invoke 把类当函数使用查看全部
-
__autoload()函数已经废弃查看全部
-
设计模式跟语言没关系,是一种思想查看全部
-
开发符合psr-0规范的基础框架
查看全部 -
装饰器(Decorator),可以动态地添加修改类的功能
一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法
使用装饰器模式,仅需要在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性
查看全部 -
在本案例中index.php中的Page类即使用策略的环境,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。
UserStrategey即抽象策略类,它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策略类中声明的方法在运行时调用具体策略类中实现的算法。
FemaleUserStrategy和MaleUserStrategy是具体的策略类,它实现了在抽象策略类中声明的算法,在运行时,具体策略类将覆盖在环境类中定义的抽象策略类对象,使用一种具体的算法实现某个业务处理。
查看全部 -
工厂模式获取对象
查看全部 -
定义代理类
查看全部 -
入口文件调用代理
查看全部
举报