命令设计模式的应用—自定义功能键

Sunny软件公司开发人员为公司内部OA系统开发了一个桌面版应用程序,该应用程序为用户提供了一系列自定义功能键,用户可以通过这些功能键来实现一些快捷操作。Sunny软件公司开发人员通过分析,发现不同的用户可能会有不同的使用习惯,在设置功能键的时候每个人都有自己的喜好,例如有的人喜欢将第一个功能键设置为“打开帮助文档”,有的人则喜欢将该功能键设置为“最小化至托盘”,为了让用户能够灵活地进行功能键的设置,开发人员提供了一个“功能键设置”窗口,该窗口界面如图所示:
在这里插入图片描述

1 找对应关系

功能键对应CommandSender,功能选项对应Command,功能对应CommandAccepter

2 设计CommandSender

public class FunctionKey{
	private Command c;//功能键对应的命令
	public FunctionKey(Command c){
		this.c = c;
	}
	public void keyPressed(){
		c.excute();
	}
	public void setCommand(Command c){
		this.c = c;
	}
	
}

3 设计Command

先写一个接口:

public interface Command{
	void excute();
}

命令的实现类:

public class CommandImpl implements Command{
	private final  Function f;//命令与功能绑定
	public CommandImpl(Function f){
		this.f = f;
	}
	public void excute(){
		f.action();
	}
	
}

4 设计Function

Function抽象类

public abstract class Function(){
	public abstarct void action();
}

打开帮助文档功能键

public class OpenHelpFile extends Function{
	public void action(){
		//open help file code here
	}
}

其它功能键参照这个类

猜你喜欢

转载自blog.csdn.net/lianqianzhan6386/article/details/82955609