文章目录 [+]
策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
策略模式的三个角色
-
抽象策略角色。
-
具体策略角色。
-
环境角色(对抽象策略角色的引用)。
实现步骤
-
定义抽象角色类(定义好各个实现的共同抽象方法)。
-
定义具体策略类(具体实现父类的共同方法)。
-
定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)。
那么什么是工厂模式(用例子来形容策略模式)
如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
具体代码
<?php //抽象策略类 abstract class Type { abstract function work(); } //坐公交(环境角色) class Bus extends Type { function work() { return '坐公交'; } } //自行车(环境角色) class Bicycle extends Type { function work() { return '骑自行车'; } } //具体策略角色 class GoToWork { public function call($object) { return $object->work (); } } $work = new GoToWork (); echo $work->call ( new Bus () );
致谢
感谢各位看完本篇文章,最近几天一直在学习,也顺便整理一些文章,希望能够对类似我一样的菜鸟一些帮助,也同时希望大佬们有所指教,共同学习,谢谢。
发表评论