策略模式

策略模式是相对比较简单的设计模式,也是用得比较多的策略模式。形象点说,且大多数的都这样解释,方便为了很方便的添加其他的算法。其实策略模式确实这样子。它很好的符合了面向对象设计的对扩展开发,对修改闭合的原则。下面是为自己设计的一个例子进行说明!

类图

【代码】

<?php

interface Salary {

	public function caculate ( );
}

class EnginerSalary implements Salary {

	public function caculate ( ) {

	
		//TODO 具体实现的过程
	}
}

class DesignerSalary implements Salary {

	public function caculate ( ) {

	
		//TODO 具体实现的过程
	}
}

class ManagerSalary implements Salary {

	public function caculate ( ) {

	
		//TODO 具体实现的过程
	}
}

class Context {

	private $_salary;

	function __construct ( Salary $_salary ) {

		$this->_salary = $_salary;
	}

	function contextCaculate ( ) {

		$this->_salary->caculate ();
	}
}

//example


class client {

	function main ( ) {

		$enginer = new EnginerSalary ();
		$c = new Context ( $enginer );
		$c->contextCaculate ();
		
		$designer=new DesignerSalary();
		$c=new Context($Designer);
		$c->contextCaculate();
		
		$manager=new ManagerSalary();
		$c=new Context($manager);
		$c->contextCaculate();
	
	}
}

知道工厂方法的童鞋可能会发现,策略模式跟工厂方法的大框架比较像。感兴趣的童鞋可以分析分析他们。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值