文档章节

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

一个yuanbeth
 一个yuanbeth
发布于 2017/09/03 23:28
字数 281
阅读 21
收藏 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
博文 103
码字总数 64572
作品 0
深圳
程序员
编程中的那些套路——关于策略模式

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

gzchen
08/27
0
0
编程中的那些套路——关于工厂模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 前面我们写了简单工厂模式,《编程中的那些套路——关于简单工厂模式》,但简单工厂模式有一些不足(违反...

gzchen
08/27
0
0
编程中的那些套路——关于单例模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 在设计模式中,单例模式和工厂模式)可以说是使用的最普遍的设计模式了,所以掌握此种模式尤为重要。 单...

gzchen
08/27
0
0
编程中的那些经典套路——设计模式汇总

在正式阅读前,我先谈谈我们该用什么姿势和心态学习设计模式: 如果你还没有过多的编程经验(泛指半年以下),我建议你把它当做小说来看,能看懂多少是多少,因为半年以下经验的程序员用到设...

gzchen
08/27
0
0
C#设计模式(2)——简单工厂模式

一、引言   这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工...

技术小胖子
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

驰狼课堂

http://www.chilangedu.com/

求是科技
10分钟前
0
0
jumpserver 报错"Incorrect string value

申明 本文所有内容参考自jumpserver记录命令无法入库问题 #1773 简介 jumpserver 1.4.0在jumpserver.log中大量报错,错误日志 File "/opt/jumpserver/apps/terminal/api.py", line 246, i...

zhnxin
17分钟前
1
0
用户管理相关配置文件及命令

9月19日任务 2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 扩展知识 实用小工具 简单命令行下实现Linux/Windows文件互传 前提:使用远程工具Xsh...

robertt15
35分钟前
0
0
presto 架构

presto 介绍 是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏ ⽀持任意数据源(通过扩展式Connect...

张欢19933
35分钟前
0
0
Ajax技术应用

1. 相关概述 1. ajax:即异步js与xml,可以实现客户端与服务端之间数据的异步交互。对于普通的B/S 模式是采用的同步方式,即一次请求必须等待一次服务器响应完成,而异步则是客户端发送请求后...

江左煤郎
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部