登陆注册
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的加法运算

同类推荐
  • 大话设计模式

    大话设计模式

    本书主要采用JAVA语言介绍设计模式中比较常见的23种设计模式,分29章具体介绍,以现实生活中常见的事情为例来具体分析讲解。
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
  • 网络广告经纪人

    网络广告经纪人

    本书为网络广告经纪人培训认证的指定教材,该认证是商务部中国商务广告协会和信息产业部中国电子商会联合推出的,旨在为国家造就和培养出一大批网络广告梯队型人才。该教材包括网络广告经纪人的介绍和发展趋势,以及网络广告的原理、策划、设计、制作、发布与交换、效果评估、管理,以及网络广告营销的国内外最新的成功案例,还提供了一些常用的网络广告制作工具。本教材适合助理网络广告经纪人和网络广告经纪人层次使用。也可作为高校广告、电子商务等专业的教材。
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • 如何处理电脑故障

    如何处理电脑故障

    本书以问答的方式介绍了电脑会出现的各种故障,内容包括了音箱声音失真,如何处理?如何做好电脑的日常维护等等问题。
热门推荐
  • 撷蔻记

    撷蔻记

    古人云:福兮祸之所伏,祸兮福之所倚。大燕朝的郡主为了嫁给自己喜欢的人,制造了一场落水意外。没想到阴差阳错给别人做了嫁衣裳——肃毅伯府上的二公子竟要迎娶小门小户一个举人的女儿为妻。简直是岂有此理。但无奈木已成舟。这日子还是要过下去的。于是,梁举人的女儿梁蔻娘收拾了自己轻飘飘的妆奁,一顶花轿嫁进了高门。撷蔻记的故事,也从此开始。
  • 黑光默示录

    黑光默示录

    “叮……给你一次新生你是否愿意追寻?”正当某宅因先天性疾病而死时在他的脑海中炸鸣“我愿意(话说他妈怎么有种求婚的时候的感觉)”“叮……黑光原型终极版病毒系统正式与宿主绑定……叮……绑定完成”于是乎超神时间到(文渣手残,只是想圆一下自己的白日梦,别介)越来越奇怪了,作者君乱入元素了哈。
  • 追忆思考与展望

    追忆思考与展望

    作者自传,见证成长。提取人生中出现的几个关键词,以此展开,贯穿从记事起至今的人生。
  • 90后清白之年

    90后清白之年

    这不是一本小说,这是一个男孩的真实故事,从年少无知的学生,到以后创业的总总问题。包含了校园最单纯的爱情,社会的人心。还记得你的年少吗?
  • 大叔来势汹汹

    大叔来势汹汹

    结婚三月,老公因病去世,她意外发现自己怀孕,众所周知名门周家大少爷,病入膏肓,根本无法行夫妻之事,一夕之间她成了人人唾弃的荡妇。当她成为众矢之的,百口莫辩时,他立于她的跟前,看着她的眼睛,幽幽的说:“我的。”他眼里明明带着讥讽,却依旧向她伸出了援手。她心悸,却无从选择,即是万丈深渊,当下也不得不跳。从此她的人生开始步入另一个轨迹。据说,周五爷的神秘小娇妻,八面玲珑,温顺开朗。却在产后性情大变,成了善妒心狠手辣又不择手段的女人,将周家搅的鸡飞狗跳。有人说她恃宠而骄;有人说这才是她的真面目,冷血无情,从一开始就居心不良,步步为营,他不过是她看中的一颗棋子而已。可归根结底,究竟谁才是居心叵测的那一个
  • 极限元素师

    极限元素师

    自古以来,元素师都是英雄们的部下,辅佐他们进行战争。云方出生在一个没有英雄血脉的家族,本来他要和父亲一样继续辅佐卡诺,但他不愿意成为附庸。先进的现代思维,与神奇的元素魔法碰撞,云方最终创造了一个有一个奇迹。
  • 他叫易烊千玺

    他叫易烊千玺

    顾涵一个年幼无知的女孩到一个成熟懂得保护自己冷淡的少女易烊千玺一个霸道暖心的男孩王俊凯一个关心大家懂得照顾人担心人的一个酷酷的男孩王源天真呆萌的又暖心爱吃的一个可爱男孩林挽笙一个恶毒的女孩易烊千玺是我遍体鳞伤的理由顾涵是我豁出一切要保护的女孩我忘了所有的人却忘不了你是易烊千玺我忘了所有的人却忘不了你是顾涵我忘了所有事都忘不了我爱你
  • 农夫山泉有点田

    农夫山泉有点田

    一次刻意的买醉,却让姐儿醉死梦里,一朝醒来,从大龄剩女直接晋升孩子他妈,成了传说中的穿越女。没有锦衣玉食,宅斗怡情,姐儿都认了,只要能有美男环绕,一切都不是问题!可为毛偏偏给姐儿的,除了当农夫的小受丈夫一枚,就只剩一颗叫姐儿“娘”的小豆芽。
  • 蜕龙纪

    蜕龙纪

    原本的天才之人褪去了华丽的外衣,变成了废物…三年之后,当他回归,曾经他的时代已经变成了历史,他微微一笑抛之脑后…他是从九天上的苍龙变成了虫,还是隐藏于渊,等待那风雷来到的一刻…
  • 峡江地区汉晋墓葬文化因素分析

    峡江地区汉晋墓葬文化因素分析

    《峡江地区汉晋墓葬文化因素分析》是索德浩在硕士论文基础上修改出版的,前后历经数载,反复补充了不少资料,是今天研究长江流域汉晋以来墓葬考古和相关历史背景的一部颇具参考价值的著作。