打字猴:1.700463166e+09
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 ]  [ 下一页 ]