仓酷云

标题: PHP编程:php设计形式 Visitor 会见者形式 [打印本页]

作者: 爱飞    时间: 2015-2-3 23:37
标题: PHP编程:php设计形式 Visitor 会见者形式
理解动态语言的概念,运做机制,熟悉PHP语法   复制代码 代码以下:
<?php
/**
* 会见者形式
*
* 暗示一个感化于某对象布局中的各元素的操作,可以在不改动各元素的类的条件下界说感化于这些元素的新操作
*
*/
abstract class Visitor
{
abstract public function visitCroncreteElementA($element);
abstract public function visitCroncreteElementB($element);
}
class ConcreteVisitor1 extends Visitor
{
public function visitCroncreteElementA($element)
{
echo get_class($element)." visit 1A<br/>";
}
public function visitCroncreteElementB($element)
{
echo get_class($element)." visit 1B<br/>";
}
}
class ConcreteVisitor2 extends Visitor
{
public function visitCroncreteElementA($element)
{
echo get_class($element)." visit 2A<br/>";
}
public function visitCroncreteElementB($element)
{
echo get_class($element)." visit 2B<br/>";
}
}
abstract class Element
{
abstract public function accept($visitor);
}
class ConcreteElementA extends Element
{
public function accept($visitor)
{
$visitor->visitCroncreteElementA($this);
}
}
class ConcreteElementB extends Element
{
public function accept($visitor)
{
$visitor->visitCroncreteElementB($this);
}
}
class ObjectStructure
{
private $_elements = array();
public function attach($element)
{
$this->_elements[] = $element;
}
public function detach($element)
{
if($key = array_search($element,$this->_elements) !== false) unset($this->_elements[$key]);
}
public function accept($visitor)
{
foreach($this->_elements as $element)
{
$element->accept($visitor);
}
}
}
//
$objOS = new ObjectStructure();
$objOS->attach(new ConcreteElementA());
$objOS->attach(new ConcreteElementB());
$objCV1 = new ConcreteVisitor1();
$objCV2 = new ConcreteVisitor2();
$objOS->accept($objCV1);
$objOS->accept($objCV2);

在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。
作者: 分手快乐    时间: 2015-2-4 03:52
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 愤怒的大鸟    时间: 2015-2-5 07:25
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 简单生活    时间: 2015-2-8 20:04
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 若天明    时间: 2015-2-26 04:26
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 活着的死人    时间: 2015-3-3 13:34
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 老尸    时间: 2015-3-6 21:27
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 小魔女    时间: 2015-3-8 15:08
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 莫相离    时间: 2015-3-9 00:30
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 第二个灵魂    时间: 2015-3-14 12:55
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 透明    时间: 2015-3-19 12:12
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 乐观    时间: 2015-3-27 20:11
本文当是我的笔记啦,遇到的问题随时填充
作者: 飘飘悠悠    时间: 2015-4-7 07:08
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 变相怪杰    时间: 2015-4-18 02:29
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 小女巫    时间: 2015-7-7 09:34
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 再见西城    时间: 2015-7-8 18:03
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 兰色精灵    时间: 2015-7-9 06:54
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 飘灵儿    时间: 2015-7-9 08:45
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 谁可相欹    时间: 2015-7-13 21:26
写的比较杂,因为我也是个新手,不当至于大家多多指正。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2