-
MVC结构查看全部
-
面向对象开发的基本原则查看全部
-
策略模式定义查看全部
-
单例模式加上工厂模式 更简洁,便于记忆查看全部
-
单例模式:可用于数据库创建,只允许new一个数据库类。 操作方法:构造函数设为private。返回的数据库对象$db为protected 只能通过new self()的getInstance()方法获得数据库的实例。 同时在getInstance()中做判断,已存在类对象返回当前对象,不存在才创建!查看全部
-
$stack = new SplStack(); // 栈 $stack->push(); $stack->pop(); new SplQueue(); // 队列 $queue->enqueue(); $queue->dequeue(); $heap = new SplMinHeap(); // 最小堆 $heap->insert(); $heap->extract(); $fixedArray = new SplFixedArray(10); // 定长数组 $fixedArray[0] = 1; $fixedArray[9] = 9;查看全部
-
// 旧方法 function __autoload( $class ){ require __DIR__.'/'.$class.'php'; } // 新方法 spl_autoloda_register( $autoload_callback_function );查看全部
-
1.php中使用ArrayAccess实现配置文件的加载 2.在工厂方法中读取配置,生成可配置化对象 3.使用装饰模式实现权限验证,模板渲染,json串化 4.使用观察者模式实现数据跟新时间的一系列更新操作 5.使用代理模式实现数据库的主从自动切换查看全部
-
面向对象编程的基本原则 1. 单一职责:一个类,只需要做好一件事情 2. 开放封闭:一个雷,应该是可扩展的,而不可修改的 3. 依赖倒置:一个类,不应该强依赖另外一个类.每个类对于另外一个类都是可替换的 4. 配置化:尽可能地使用配置,而不是硬编码 5.面向接口编程:只需要关心接口,不需要关心实现查看全部
-
面向对象编程的基本原则 1. 单一职责:一个类,只需要做好一件事情 2. 开放封闭:一个雷,应该是可扩展的,而不可修改的 3. 依赖倒置:一个类,不应该强依赖另外一个类.每个类对于另外一个类都是可替换的 4. 配置化:尽可能地使用配置,而不是硬编码查看全部
-
> 1. 在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行的操作全部委派给代理对象,隐藏实体的具体实现细节。 > 2. Proxy还可以与业务代码分离,部署到另外的服务器,业务代码中通过RPC来委派任务。查看全部
-
迭代器的五个方法 http://php.net/manual/zh/class.iterator.php查看全部
-
> 1. 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。 > 2. 相比传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作。查看全部
-
1.装饰模式,可以动态的添加修改类的功能 2.一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个之类集成它,并重新实现类的方法 3.使用装饰模式,仅需在运行时天灾一个装饰对象即可实现,可以实现最大的灵活性查看全部
-
class Canvas{ public $data; function init($width = 20,$height = 10){ $data = array(); for($i = 0;$i<$height;$i++){ for($j=0;$j<$width;$j++){ $data[$i][$j] = '*'; } } $this->data = $data; } function draw(){ foreach ($this->data as $line){ foreach ($line as $char){ echo $char; } echo "<br>\n"; } } function rect($a1,$a2,$b1,$b2){ foreach ($this->data as $k1=>$line){ if($k1<$a1 or $k1>$a2)continue; foreach ($line as $k2=>$char){ if ($k2 < $b1 or $k2 > $b2) continue; $this->data[$k1][$k2] = ' '; } } } } $prototy = new IMooc\Canvas(); $prototy->init(); $canvas1 =clone $prototy; $canvas1->init(); $canvas1->rect(3,6,4,12); $canvas1->draw(); echo "-------------------------<br>"; $canvas2 =clone $prototy; $canvas2->init(); $canvas2->rect(3,6,4,12); $canvas2->draw();查看全部
举报
0/150
提交
取消