《headfirst设计模式》代码之php版(面向对象学习)

《headfirst设计模式》代码之php版(面向对象学习)

ID:30782093

大小:165.00 KB

页数:16页

时间:2019-01-03

《headfirst设计模式》代码之php版(面向对象学习)_第1页
《headfirst设计模式》代码之php版(面向对象学习)_第2页
《headfirst设计模式》代码之php版(面向对象学习)_第3页
《headfirst设计模式》代码之php版(面向对象学习)_第4页
《headfirst设计模式》代码之php版(面向对象学习)_第5页
资源描述:

《《headfirst设计模式》代码之php版(面向对象学习)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《HeadFirst设计模式》代码之PHP版(面向对象学习)《HeadFirst设计模式》是本不错的讲解设计模式的书,不像F4写的那么枯燥,应该算是比较容易理解的好书。书屮的例子都比较浅显易懂,不过由于是外国佬写的,所以例子的习惯不是很附合中国特色,可能偶尔看起来有些别扭,还有语言习惯也不是小国风。当然❷❷看过这本书Z后,你才能深刻理解设计模式到底能为你解决哪些问题,不能为你解决哪些问题(比如不能代替你的编码)。我将书中部分代码改成PHP,看下代码再配合概念应该是比较容易理解了。策略模式复制代码代码如下:

2、*策略模式*定义了算法族,分别封装起来,让它们之间可以互相替换,*此模式让算法的变化独立于使用算法的客户。*/〃飞行行为接口interfaceFlyBehavior{publicfunctionfly();}〃呱呱叫行为接口interfaceQuackBehavior{publicfunctionquack();}〃翅膀飞行classFlyWithWingsimplementsFlyBehavior{publicfunctionfly(){echoHrmflying!!";}}〃不会飞classFlyNoWayimp

3、lementsFlyBehavior{publicfunctionfly(){echo"Ican'tfly!";}}classFlyRocketPoweredimplementsFlyBehavior{publicfunctionfly(){echo'Tmflyingwitharocket!";}}classQquackjmplementsQuackBehavior{publicfunctionquack(){echo"Quack'rT;}}classSqueakimplementsQuackBehavior{p

4、ublicfunctionquack(){echoHSqueakrT;}}classMuteQuackimplementsQuackBehavior{publicfunctionquack(){echoH«Silence»u;}}abstractclassDuck{protected$quack_obj;protected$fly_obj;publicabstractfunctiondisplay();publicfunctionperformQuack(){$this->quack_obj->quack();}p

5、ublicfunctionperformFly(){$this->fly_obj->fly();}publicfunctionswim(){echoHAIIducksfloat,evendecoys!'1;}publicfunctionsetFlyBehavior(FlyBehavior$fb){$this->fly_obj=$fb;}publicfunctionsetQuackBehavior(QuackBehavior$qb){$this->quack_obj=$qb;}}classModelDuckextend

6、sDuck{publicfunction_construct(){$this->fly_obj=newFlyNoWay();$this->quack_obj=newMuteQuack();}publicfunctiondisplay)){echo'Tmamodelduck!u;}}$model=newModelDuck();$model->performFly();$model->performQuack();〃提供新的能力$model->setFlyBehavior(newFlyRocketPowered());$

7、model->setQuackBehavior(newSqueak());$model->performFly();$model->performQuack();?>单件模式复制代码代码如下:

8、e==null){self::$uniquelnstanee=newMyClass();}returnself::$uniquelnstance;}}$myClass=MyClass::getlnstance();var_dump($myClass);$myClass=MyClass::getlnstance();v

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。