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
}
}
其它功能键参照这个类