Java设计模式之策略模式---写的比较有趣,推荐大家看看
原文:http://blog.csdn.net/jason0539/article/details/45007553
- public interface Strategy {
- public void operate();
- }
- public class BackDoor implements IStrategy {
- @Override
- public void operate() {
- System.out.println("找乔国老帮忙,让吴国太给孙权施加压力,使孙权不能杀刘备");
- }
- }
- public class GivenGreenLight implements IStrategy {
- @Override
- public void operate() {
- System.out.println("求吴国太开个绿灯,放行");
- }
- }
- public class BlackEnemy implements IStrategy {
- @Override
- public void operate() {
- System.out.println("孙夫人断后,挡住追兵");
- }
- }
环境类(Context)
- public class Context {
- private Strategy strategy;
- //构造函数,要你使用哪个妙计
- public Context(Strategy strategy){
- this.strategy = strategy;
- }
- public void setStrategy(Strategy strategy){
- this.strategy = strategy;
- }
- public void operate(){
- this.strategy.operate();
- }
- }
下面就是使用的情况了
- public class Zhaoyun {
- public static void main(String[] args) {
- Context context;
- System.out.println("----------刚到吴国使用第一个锦囊---------------");
- context = new Context(new BackDoor());
- context.operate();
- System.out.println("\n");
- System.out.println("----------刘备乐不思蜀使用第二个锦囊---------------");
- context.setStrategy(new GivenGreenLight());
- context.operate();
- System.out.println("\n");
- System.out.println("----------孙权的追兵来了,使用第三个锦囊---------------");
- context.setStrategy(new BlackEnemy());
- context.operate();
- System.out.println("\n");
- }
- }
Java设计模式之策略模式---写的比较有趣,推荐大家看看相关推荐
- Java设计模式之策略模式与状态模式
一.策略模式定义 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户端的情况下发生变化. 好了,定义看看就完了,我知道你很烦看定义. 二.策 ...
- Java设计模式之策略模式+工厂模式+模板模式
Java设计模式之策略模式+工厂模式+模板模式 1.策略模式+工厂模式+模板模式 个人的理解:实际开发工程中,一些业务很复杂的逻辑使用很多的 if 或者 if···else 语句,不利于维护和扩展,为 ...
- Java设计模式之策略模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- 【设计模式】java设计模式之 -- 策略模式
对于代码中总是会有需要变化的部分和需要固定不变的部分.对于需要变化的部分,一般可以采用继承的方式,让子类对父类的方法进行重写,以改变已有的行为:如果变化的部分并不是所有子类都必须要有的,那就可以采用接 ...
- 【Java设计模式】策略模式
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景知识 策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法.比如每 ...
- Java 设计模式之策略模式
一.了解策略模式 1.1 什么是策略模式 策略模式 (Strategy Pattern) 是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换.此模式让算法的变化独立于使用算法的客 ...
- java解决策略膨胀_折腾Java设计模式之策略模式
简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式.简单理解就是一组算法,可以互换,再简单点策略就是封装算法. 意图 定义一 ...
- Java设计模式之——策略模式
策略模式的简单介绍 在软件开发中常常遇到这样的情况:实现某一个功能可以有多种算法或者策略,我们根据事件情况选择不同的算法或者策略来完成该功能.例如,排序算法,可以使用插入排序.归并排序.冒泡排序等. ...
- Java设计模式之——策略模式(Strategy)
一.例子 令狐冲被岳不群罚在思过崖上面壁思过.偶然的机会发现崖内有一个后洞,石壁上刻有魔教十长老尽破五岳剑派的图形招式.所有五岳剑派引以为豪的精微奥妙招式尽数被破得干干净净,包括一些已经失传的招式. ...
最新文章
- 【方法整理】Oracle 获取trace跟踪文件名的几种常用方式
- SQL Server2005的XML数据类型之基础篇 (2)
- 精华阅读第 9 期 |滴滴出行 iOS 客户端架构演进之路
- 【matlab】将matlab中数据输出保存为txt或dat格式
- Java8-Guava实战示例
- C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)
- cad2006安装未找到html文件,启动 AutoCAD 时显示“加载自定义文件失败。未找到文件”...
- 服务器Windows 2008 R2 安装SQL 2008 R2
- C#中Math.Round()实现中国式四舍五入
- matlab rem与mod 的区别
- 辉迅手机号码归属地查询软件 手机号码归属地 手机查询
- 201671030108 +词频统计软件项目报告
- 【STM32 .Net MF开发板学习-12】跳动的音符(PWM合成)
- oracle 无法在指定的节点上,oracle 11g rac 某节点CRS起不来的解决方法
- 计算机机房门尺寸,门的尺寸怎么量呢
- (Maven+SSM)实战之spring mybatis整合
- 想知道香港汇丰银行如何开户吗?
- 数据库新增修改和删除
- java方向的光脚丫子的电影,斯嘉丽·约翰逊:“光着脚丫子”示人,这足踝,这足弓,爱了好吗...
- 小龙虾是如何成为直播间爆款的
热门文章
- zoj 3761 Easy billiards 并查集+dfs
- 假设你有一个数组,其中第i 个元素是第i天给定股票的价格。设计算法以找到最大利润。你可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:您不能同时进行多笔交易(即,您必须在再次购买之前
- 17行代码AC——习题5-3 卡片游戏(Throwing cards away I, UVa 10935,约瑟夫环)_解题报告
- 关于SET和UNORDER_SET
- 苹果mac电脑修改并快速linux网络配置
- oracle12c完全卸载工具_oracle完全卸载方法
- mac VMware Fusion 虚拟机键盘可以使用,鼠标无法使用排查思路及解决方法
- Linux下安装、查看、删除软件包
- HTML 取消超链接下划线
- 易语言 服务器抓包,易语言抓包获得地址实现TP路由器登陆的代码