当前位置: 首页 > 后端技术 > PHP

PHP设计模式(四)策略模式

时间:2023-03-29 13:45:02 PHP

策略模式策略模式,将一组特定的行为和算法封装到类中,以适应某些特定的上下文。例如:比如男女用户跳转到不同的页面,所有的广告位展示不同的广告。今天新增了一个中性,需要在所有判断中修改,使用策略模式避免修改,实现依赖倒置和控制倒置//策略接口约定策略接口UserStrategy{publicfunctionshowAD();}//Female类FemaleUser实现UserStrategy{publicfunctionshowAD(){echo"nv";}}//Male类MaleUser实现UserStrategy{publicfunctionshowAD(){echo"Male";}}//显示类//page类依赖Female和MaleStrategy,现在只依赖UserStrategy,Female和male依赖UserStrategy,从而实现反转。//依赖倒置的一般实现方案:一个类依赖另一个类,一般依赖几个方法,而这些方法抽象出一个接口,依赖于类。意识到这个借口就实现了反转。详见拨码原理。类页{私人$s;publicfunctionindex(){$this->a->showAD();}publicfunctionsetStrategy(UserStrategy$class){$this->s=$class;}}//只在一处判断,配置策略对象(Page),使用if($type=='male'){$obj=newMaleUser();}if($type=='Female'){$obj=newFemaleUser();}$p=newPage();$p->setStrategy($obj);$p->index();