策略模式

何谓策略模式?

      本人的理解是:一个对象要完成一件事情,有很多种实现策略。为了把对象与实现方式解耦,可以使用策略模式(Strategy)



模式的组成

环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。
抽象策略类(Strategy):定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。
具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。




写一段策略模式的伪代码 :


Interface 砍树类(策略接口)
{
	砍树();
}

	class 锯子砍树 implements 砍树类			---具体的策略类
{
	砍树(){
		用锯子锯……	
	}
}

	class 电锯砍树 implements 砍树类			---具体的策略类
{
	砍树(){
		用电锯锯……	
	}
}

	class 指甲刀砍树 implements 砍树类			---具体的策略类
{
	砍树(){
		用指甲刀剪……	
	}
}


	class 环境类(context)						---一个环境类,来"智能"选择具体的策略
	{
		private 砍树类(一个引用)
		设置策略方法(砍树的具体类){
				砍树类 = 砍树的具体类
		}


		我要砍树(){
				砍树类.砍树();
		}
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值