当前位置:首页 > 资讯 > info6 > 正文

策略设计模式:把可变的行为抽象出来形成一个算法簇

发表于: 2014-10-09   作者:chaoyong918   来源:转载   浏览:
摘要: /** 策略设计模式: 把可变的行为抽象出来,想成一个算法簇,这样可以让我们的应用更利于变化。 在使用抽象类和接口时,我们优先选择接口 OO思想:面向接口编程,低耦合,高内聚 */ interfaceGoHomeable { publicvoidgoHome(Stringjob); } classGoHomeableImplByFlyimplementsGoHomeable { publicv
/**
策略设计模式:
			把可变的行为抽象出来,想成一个算法簇,这样可以让我们的应用更利于变化。
			在使用抽象类和接口时,我们优先选择接口
			OO思想:面向接口编程,低耦合,高内聚
*/

interface GoHomeable
{
	public void goHome(String job);
}

class GoHomeableImplByFly implements GoHomeable
{
	public void goHome(String job){
		System.out.println(job + "穷的就剩钱了,要坐飞机回家。。。");
	}
}

class GoHomeableImplByFoot implements GoHomeable
{
	public void goHome(String job){
		System.out.println(job + "把钱花光了,只能步行回家。。。");
	}
}

class GoHomeableImplByTrain implements GoHomeable
{
	public void goHome(String job){
		System.out.println(job + "是穷屌丝,站火车回家。。。");
	}
}

class Person
{
	private String job;
	private GoHomeable gh;

	public Person(String job){
		this.job = job;
	}

	public void setGH(GoHomeable gh){
		this.gh = gh;
	}

	public void setJob(String job){
		this.job = job;
	}

	public String getJob(){
		return job;
	}

	public void goHome(){
		gh.goHome(job);
	}
}

class Student extends Person
{
	public Student(String job){
		super(job);
	}
}

class Worker extends Person
{
	public Worker(String job){
		super(job);
	}
}

class Boos extends Person
{
	public Boos(String job){
		super(job);
	}
}

class  CeLueMoShi
{
	public static void main(String[] args) 
	{
		Student student = new Student("学生");
		student.setGH(new GoHomeableImplByTrain());
		student.goHome();

		Worker worker = new Worker("工人");
		worker.setGH(new GoHomeableImplByFoot());
		worker.goHome();

		Boos boos = new Boos("大老板");
		boos.setGH(new GoHomeableImplByFly());
		boos.goHome();
	}
}

策略设计模式:把可变的行为抽象出来形成一个算法簇

编辑推荐
策略模式(Strategy) 定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算
和Template一样的目的,只不过实现手法是组合 而不是Template模式的继承,解决了继承所带来的弊端。
1 概念 策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相
定义:策略模式(Strategy Pattern),定义一系列算法,把它们一个个封装起来,并且使它们可以相互替
策略设计模式 策略模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个
定义:策略模式(Strategy Pattern),定义一系列算法,把它们一个个封装起来,并且使它们可以相互替
初学设计模式,将学习心得与众博友分享,如有不正之处还请大家批评指正。 王尼玛自称是一个上知天文
1.什么是策略模式。   策略模式是将可变部分从程序中抽象分离成算法接口,在该接口下分别封装一系
设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也常常遇到类似的情况,实
设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也常常遇到类似的情况,实
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号