文档章节

《设计模式之禅》观后感—策略模式

一个yuanbeth
 一个yuanbeth
发布于 2017/09/03 23:28
字数 281
阅读 22
收藏 0

策略模式的特点就是高内聚,低耦合。下面我也来设计一个适合策略模式的场景,有一种游戏大家应该都比较熟悉,规则是一个人根据拿到的成语比划,另一个人来猜这个成语是什么。

一、首先,这些词都属于一类可以比划的词吧,那我们可以把这类词写成一个接口,如:

public interface IIdiom {
   public void exute();
}

二、然后就是每个词要执行具体的动作,如:

public  class First implements IIdiom{
	
	public void exute(){
		System.out.print("学狗叫");
	}
}

public  class Second implements IIdiom{
	
	public void exute(){
		System.out.print("学猫叫");
	}
}

public  class Third implements IIdiom{
	
	public void exute(){
		System.out.print("学鸡叫");
	}
}

三、我们可以将这些词放在一个盒子里,拿到哪个执行哪个,如:

class Box{
	public IIdiom iidiom;
	public Box(IIdiom strategy){
		this.iidiom = strategy;
	}
	public void exute(){
		this.iidiom.exute();
	}
}

四、开始游戏

class exuteActivity{
	public static void main(String [] args){
		Box box;
		box = new Box(new First());//比划第一个词
		box = new Box(new Second());//比划第二个词
		box = new Box(new Third());//比划第三个词
		box.exute();
	}
}

© 著作权归作者所有

共有 人打赏支持
一个yuanbeth
粉丝 81
博文 114
码字总数 71130
作品 0
深圳
程序员
私信 提问
java的回调函数,本身算是工厂模式吗?

一直以来都没怎么学习过设计模式 今天在详细了解java的工厂模式时,意外的觉得这货不就是回调函数吗? java的回掉函数,可以用抽象类或是接口实现。而今天从《设计模式之禅》中看的工厂模式,...

优秀良民
2016/05/08
192
2
《JavaScript设计模式与开发实践》原则篇(2)—— 最少知识原则

最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这 里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。 单一职责原则指导我们...

嗨呀豆豆呢
2018/12/30
0
0
设计模式已经陨落了?

你现在是坐在一个程序员旁边吗?如果是的话,那么在你读下面的段落之前,有一个简单的实验。让他们到一边去,问问他们两个问题并记录下答案。首先问他们“什么是设计模式?”然后再问“说出你...

oschina
2014/03/11
9.1K
69
《JavaScript设计模式与开发实践》最全知识点汇总大全

系列文章: 《JavaScript设计模式与开发实践》基础篇(1)—— this、call 和 apply 《JavaScript设计模式与开发实践》基础篇(2)—— 闭包和高阶函数 《JavaScript设计模式与开发实践》模式...

嗨呀豆豆呢
01/04
0
0
编程中的那些套路——关于策略模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 今天讲讲策略模式,策略模式 和工厂模式十分相像(或者说在代码逻辑层面,他们是一样的)。 但策略模式与...

gzchen
2018/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
44分钟前
0
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
4
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部