1700463166
1700463167
Command抽象类只有一个方法execute,其作用就是执行命令,子类非常坚决地实现该命令,与军队中类似,上级军官给士兵发布命令:爬上这个旗杆!然后士兵回答:Yes,Sir!完美的项目也与此类似,客户发送一个删除页面的命令,接头负责人Invoker接收到命令后,立刻执行DeletePageCommand的execute方法。对类图中增加的几个类说明如下:
1700463168
1700463169
Command抽象类:客户发给我们的命令,定义三个工作组的成员变量,供子类使用;定义一个抽象方法execute,由子类来实现。
1700463170
1700463171
Invoker实现类:项目接头负责人,setComand接收客户发给我们的命令,action方法是执行客户的命令(方法名写成是action,与command的execute区分开,避免混淆)。
1700463172
1700463173
其中,Command抽象类是整个扩展的核心,其源代码如代码清单15-7所示。
1700463174
1700463175
代码清单15-7 抽象命令类
1700463176
1700463177
public abstract class Command{
1700463178
1700463179
//把三个组都定义好,子类可以直接使用
1700463180
1700463181
protected RequirementGroup rg=new RequirementGroup();//需求组
1700463182
1700463183
protected PageGroup pg=new PageGroup();//美工组
1700463184
1700463185
protected CodeGroup cg=new CodeGroup();//代码组
1700463186
1700463187
//只有一个方法,你要我做什么事情
1700463188
1700463189
public abstract void execute();
1700463190
1700463191
}
1700463192
1700463193
抽象类很简单,具体的实现类只要实现execute方法就可以了。在一个项目中,需求增加是很常见的,那就把“增加需求”定义为一个命令AddRequirementCommand类,如代码清单15-8所示。
1700463194
1700463195
代码清单15-8 增加需求的命令
1700463196
1700463197
public class AddRequirementCommand extends Command{
1700463198
1700463199
//执行增加一项需求的命令
1700463200
1700463201
public void execute(){
1700463202
1700463203
//找到需求组
1700463204
1700463205
super.rg.find();
1700463206
1700463207
//增加一份需求
1700463208
1700463209
super.rg.add();
1700463210
1700463211
//给出计划
1700463212
1700463213
super.rg.plan();
1700463214
1700463215
}
[
上一页 ]
[ :1.700463166e+09 ]
[
下一页 ]