策略设计模式

策略模式属于对象的行为模式。
其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
策略模式的结构

策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。

package 设计模式;

//************************主测试类***********************
public class StrategyTest {

	public static void main(String[] args) {
		Duck duck=new BlackDuck("小黑");
		duck.setFly(new FlyImpl());
		duck.fly();
		
		Duck noduck=new ModekDuck("小白");
		noduck.setFly(new NotFlyImpl());
		noduck.fly();
	}
}
//***********************
interface Flyavle{
	public void flay();
}
class FlyImpl implements Flyavle{

	@Override
	public void flay() {
		// TODO Auto-generated method stub
		System.out.println("我飞的老高了!");
	}
	
}
class NotFlyImpl implements Flyavle{

	@Override
	public void flay() {
		// TODO Auto-generated method stub
		System.out.println("我不会飞!");
	}
	
}
abstract class Duck{
	public String name;
	private Flyavle fly;
	
	public void setFly(Flyavle fly) {
		this.fly=fly;
	}
	
	public Duck(String name) {
		this.name=name;
	}
	public void fly() {

		System.out.println(name+":");
		fly.flay();
	}
}


//真黑鸭子
class BlackDuck extends Duck{

	public BlackDuck(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}
	
}
//模型鸭子
class ModekDuck extends Duck{

	public ModekDuck(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}
	
}
//***********************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王家视频教程图书馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值