第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

設(shè)計(jì)模式-行為型模式-命令模式

標(biāo)簽:
設(shè)計(jì)模式

设计模式-行为型模式-命令模式

基础

以一个MIS系统为栗子

MIS 管理信息系统(Management Information System,MIS)是一个以人为主导的,利用计算机硬件、软件和网络设备,进行信息的收集、传递、存储、加工、整理的系统,以提高组织的经营效率。

代码如下

public abstract class Group{
	// 甲乙双方公开办公,如果要和某个组讨论,要先找到这个组
	public abstract void find();
	// 要求增加功能
	public abstract void add();
	// 删除功能
	public abstract void delete();
	// 被要求修改功能
	public abstract void change();
	// 被要求给出变更计划
	public abstract void plan();
}

抽象类中的都是命令方式。
进行需求组

public class RequirementGroup extends Group{
	// 客户要求需求进行更改
	public void find(){
		
	}
	// 客户要求增加需求
	public void add(){
	}
	// 客户要求修改需求
	public void change(){
	}
	// 客户要求删除需求
	public void delete(){
	}
	// 客户要求给出变更计划
	public void plan(){
	}
}
// 美工组
public class PageGroup extends Group{
	// 找到美工组
	public void find(){
	}
	// 客户要求增加页面
	public void add(){
	}
	// 客户要求对现有界面修改
	public void change(){
	}
	// 客户要求删除页面
	public void delete(){
	}
	// 给出计划
	public void plan(){
	}
}
// 代码组
public class CodeGroup extends Group {
	// 客户要求过去谈
	public void find(){
	}
	// 客户要求增加功能
	public void add(){
	}
	// 客户要求修改功能
	public void change(){
	}
	// 客户要求删除功能
	public void delete(){
	}
	// 客户要求变更计划
	public void plan(){
	}
}

最后书写场景类

// 场景类
public class Client{
	public static void main(String[] args){
		// 客户找到需求要求谈需求进行修改
		Grop rg = new RequirementGroup();
		// 找到需求组
		rg.find();
		// 增加需求组
		rg.add();
		// 变更计划
		rg.plan();
	}
}

此时客户要求多一个界面

public class Client {
	public static void main(String[] args){
		Group pg = new PangeGroup();
		// 找到需求组
		pg.find();
		// 删除需求组
		pg.delete();
		// 需求变更
		pg.plan();
	}
}

变更

客户每次都要单独找一个,非常复杂,设置一个负责人,负责和客户和需求,美工之间的连接。

// 抽象出命令类
public abstract class Command{
	// 定义三个组,确保子类可以直接使用
	protected RequirementGroup rg = new RequirementGroup();	// 需求组
	protected PageGroup pg = new PageGroup();	// 美工组
	protected CodeGroup cg = new CodeGroup(); // 代码组
	public abstract void execute();	// 做什么事情
}

增加需求的命令

public class AddRequirementCommand extends  Command{
	// 增加一项需求命令
	public void execute(){
		// 找到需求组
		super.rg.find();
		// 增加一份需求
		super.rg.add();
		// 给出计划
		super.rg.plan();
	}
}

增加删除页面的命令

public class DeletePageCommand extends Command{
	public void execute(){
		// 找到页面组
		super.pg.find();
		// 删除页面
		super.rg.delete();
		// 给出计划
		super.rg.plan();
	}
}

最后再将这也命令封装,成一个负责人

public class invoker {
	// 命令
	private Command command;
	// 客户发出命令
	public void setCommand(Command command){
		this.command = command;
	}
	// 客户自行命令
	public void action(){
		this.command.execute();
	}
}

最后场景类如下

public class Client{
	public static void main(String[] args){
		// 定义接头人
		invoker xiaoSan = new Invoker();	// 接头人
		// 客户增加需求
		// 客户下命令
		Command command = new AddRequirementCommand();
		// 街头人收到命令
		xiaoSan.setCommand(command);
		// 街头人执行命令
		xiaoSan.action();
	}
}

继续更改

由于负责人的抽象类中声明了所有的,所以可以分离
代码如下

public abstract class Command {
	// 定义子类全局共享变量
	protected final Receiver receiver;
	// 实现类名需要接收
	public Command(Receiver _receiver){
		this.receiver = _receiver;
	}
	// 每个命令需要有执行
	public abstract void execute();
}

然后在Command中声明接收者。
通过构造函数指定

public class ConcreteCommand1 extends Command{
	// 声明自己默认接收者
	public ConcreteCommand1(){
		super(new ConcreteReciver1());
	}
	// 设置新的接受
	public ConcreteCommand1(Receiver _receiver){
		super(_receiver);
	}
	// 处理
	public void execute(){
		super.receiver.doSomething();
	}
}
// 声明场景
public class Client{
	public static void main(String[] args){
		invoker invoker = new invoker();
		// 定义要发送的命令
		Command command = new ConcreteCommand1();
		invoker.setCommand(command);
		invoker.action();
	}
}

总结

将需求封装成命令,然后再负责人当中封装,最后,需要的时候,直接调用负责人,将命令传入进去即可。
www.iming.info

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消