欢迎来到天天文库
浏览记录
ID:30782093
大小:165.00 KB
页数:16页
时间:2019-01-03
《《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
此文档下载收益归作者所有