登陆注册
8183300000178

第178章 9 策略模式的应用

小A:“策略模式应该怎么去应用它?”

大B:“1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态的让一个对象在许多行为中选择一种行为。2、如果系统需要动态地在几种算法中选择一种。那么这些算法可以包装到一个个的具体算法类里面,而这些算法类都是一个抽象算法类的子类。3、一个系统的算法使用的数据不可以让客户端知道。策略模式可以避免让客户端涉及到不必要接触到的复发的和只与算法有关的数据。”

使用案例:

AWT中的LayoutManager,Swing中的Border。

代码例子

1、抽象策略

package com。eekq。strategy;

public interface IStrategy{

/**策略方法*/

public abstract double add();

}

2、具体策略,这里我以两个具体策略为例

package com。eekq。strategy;

public class ConcreteStrategy1 implements IStrategy{

/**示意性算法*/

public double add(){

//TODO自动生成方法存根

System。out。println(this。getClass()。getName() “的加法运算”);

return0;

}

}

package com。eekq。strategy;

public class ConcreteStrategy2 implements IStrategy{

public double add(){

//TODO自动生成方法存根

System。out。println(this。getClass()。getName() “的加法运算”);

return 0;

}

}

3、环境角色

package com。eekq。strategy;

public class Context{

/**环境角色类*/

private IStrategy strategy;

public Context(IStrategy strategy){

this。strategy=strategy;

}

/**策略方法*/

public double add(){

this。strategy。add();

return 0;

}

}

4、客户端调用

package com。eekq。strategy;

public class Main{

/ *@paramargs

*/

public static void main(String[]args){

//TODO 自动生成方法存根

Context context=new Context(new ConcreteStrategy1());

context。add();//执行算法。

context=new Context(new ConcreteStrategy2());

context。add();//执行算法。

}

}

5、执行结果:

com。eekq。strategy。ConcreteStrategy1的加法运算

com。eekq。strategy。ConcreteStrategy2的加法运算

同类推荐
  • 条形码技术与应用

    条形码技术与应用

    条形码是一种可供电子仪器自动识别的标准符号,是由一组黑白相间、粗细不同的条、空符号按一定编码规则排列组成的标记,用以表示一定的信息,确认某个物体或规定它的移动,能正确快速地为产、供、销各环节在采集、处理和交换信息时提供标识。
  • 办公设备使用与维护

    办公设备使用与维护

    信息技术的发展正前所未有地改变着人类生活的每一个层面,以信息化、全球化和高科技为特征的新经济浪潮滚滚而来,机遇与挑战并存。办公自动化是信息化时代最重要的标志之一,办公要实现自动化,当然离不开办公设备。
  • 我看电商

    我看电商

    本书是作者近30年从事零售及电子商务管理的总结和分享。近年来电商行业在中国迅猛发展,2012年网络零售市场规模达到13,000亿人民币,诞生了淘宝、天猫、京东、当当、凡客、唯品会……等一大批全新的网络公司,电子商务正在日益深入的影响着越来越多人的生活。如今这位自称跨界老兵的电商操盘手第一次全方位剖析电商风云,细说中美电子商务发展的不同路径,评点国内各大电商企业的是是非非,详解其中的融资、模式、运营、效率……个中经验,毫无保留的娓娓道来,笔触至深,让人不禁掩卷沉思。
  • 研究性学习丛书-电脑知识

    研究性学习丛书-电脑知识

    本书对电脑知识有一个全面详细的介绍,会对读者的电脑知识进行提高。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
热门推荐
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 我在雄兵连修仙

    我在雄兵连修仙

    我,凌峰,末法时代的一位修仙者,一生都在为突破金丹而努力。一天晚上,我有预感突破金丹,并准备渡劫,没想到却惨死在雷劫下。当我睁开眼时,却发现我来到了超神宇宙。(练气期-筑基期-金丹期-飞升期-羽化期-地仙-天仙-化神。每两个境界就是一代神体的划分。)
  • 基础最重要篮球系统

    基础最重要篮球系统

    他穿越回初中时代,带着一个基础篮球系统,重新开始自己的篮球梦想。他能否站立在篮球之巅?
  • 狼崽子嗅蔷薇

    狼崽子嗅蔷薇

    人界、妖界和仙界。他是失去法力,变成小崽崽模样的狼妖。他是被逐出家族的猫妖。她,在仙界呆的腻烦,凡心未除,想要过凡人生活的仙子。瞧,那只猫好可爱,不如抱回去养着。啧,这狗为什么跟着她。抱着猫的她嫌弃地瞅了眼身后的狗崽子,眉角抽了抽。
  • 世界的正反面,古脉

    世界的正反面,古脉

    古青云,是一个将要死亡的十七岁少年,而此时处于第三世的宇宙水晶永恒再次转生,来到了一个新的世界也来到了古青云的身体里...
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 狐仙神缘

    狐仙神缘

    因爱生恨,因无法信任而互相伤害。一次次的犹豫是他的懦弱伤害了她的心,还是她真的不适合他?用爱创造出的杀戮,用血创造出的恨,到底是谁先伤害了谁?“我不在乎,再也不会在乎!”那雪山之巅是的胜雪华服还是那么的洁白纯净,那人呢?还是一如既往吗?时过境迁,一切早已在不知不觉中发生了变化,物是人非。
  • 甜蜜爱:绝佳搭配

    甜蜜爱:绝佳搭配

    刚下飞机,一位有着天使一般的面孔,让人痴迷,粉嫩的樱桃小嘴上有一个精致的不能再精致的鼻子。尤其有一双水汪汪的大眼睛,显得十分美丽。还有哪如瀑布一样的头发中有一丝金色的头发而她又拥有这人人羡慕的大长腿,洁白又修长..................
  • 每一个瞬间都有你鸭

    每一个瞬间都有你鸭

    第一次写小说,语言都很青涩,大家多多包涵,可以提出建议和意见。口下留情,轻点喷哈。这是一个甜文。