php设计模式之策略模式
来源:互联网 发布:淘宝电脑版登录链接 编辑:程序博客网 时间:2024/06/06 20:18
1.定义:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,称为策略模式
2. 使用策略模式可以实现ioc(控制反转),降低依赖注入
3. 如下面这个例子,如果不使用策略类,那么我们会使用if else或者switch这种控制结构来判断吃的食物,从而调用所选食物的处理方法,当我们增加一种食物时,需要对原本的代码新增加一个判断逻辑,此种方式我们称之为硬编码,应该避免
<?php/** * * @authors mtg * @date 2015-08-07 15:00:54 *//*** 策略接口类:具体策略类需要实现其中的方法*/interface Eat{ public function eat();}/*** 具体策略类:吃米饭*/class eatRice implements Eat { public function eat() { echo "eat rice"; }}/*** 具体的策略类:吃面包*/class eatBread implements Eat{ public function eat() { echo "eat bread"; }}/*** 具体的策略类:吃面条*/class eatNoodles implements Eat{ public function eat() { echo "eat noodles"; }}/*** 策略解决类: 以提供客户选择使用何种解决方案: */class ChooseEat{ private $strategy=null; public function __construct(Eat $eat) { $this->strategy=$eat; } public function eat_food() { $this->strategy->eat(); } public function set_eat_strategy(Eat $eat) { $this->strategy=$eat; }}$chooseEat=new ChooseEat(new eatBread());$chooseEat->eat_food();//eat bread
与工厂类的区别:
工厂模式是创建型模式 ,它关注对象创建,提供创建对象的接口. 让对象的创建与具体的使用客户无关。
策略模式是对象行为型模式 ,它关注行为和算法的封装 。它定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。使得算法可独立于使用它的客户而变化
0 0
- php中的设计模式之--策略模式
- php设计模式之策略模式
- PHP设计模式之策略模式
- php设计模式之策略模式
- php设计模式之策略模式
- php设计模式之策略模式
- php设计模式之策略模式
- PHP设计模式之策略模式
- PHP:设计模式之策略模式
- php八大设计模式之策略模式
- php设计模式之策略模式
- php设计模式之策略模式
- php设计模式之策略模式
- PHP 设计模式之策略模式
- 【PHP设计模式】策略模式
- PHP设计模式--策略模式
- php设计模式 策略模式。
- PHP设计模式:策略模式
- 欢迎使用CSDN-markdown编辑器
- nyoj1058 poj 1564(深搜部分和)
- 浅谈CSS选择器中的空格
- 9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
- [转]解决WindowsForm窗体假死的状态
- php设计模式之策略模式
- Google翻译是如何把深度学习“塞进”手机的?
- C# 委托及各种写法
- (2.1)英语听力之短对话
- spring data jpa中@Query中的模糊查询<like关键字>
- Python3 Counter类计算list中元素出现次数
- 导入项目后,make project时出错
- 14.1 Understanding Index Performance 了解索引性能
- 与oc字符串有关的习题以及答案