關(guān)鍵命令調(diào)用類:
1
/**
2
* 該類持有Command抽象類,action方法即可調(diào)用
3
* Command的子類方法名稱都為execute
4
**/
5
public class invoker{
6
private Command command;
7
public setCommand(Command command){
8
this.command = command
9
}
10
public void action(){
11
this.command.execute();
12
}
13
}
Command抽象類,里面只含有execute()方法,所以其子類構(gòu)造參數(shù)為命令執(zhí)行者,并且持有命令執(zhí)行者對(duì)象,execute方法里面即為命令執(zhí)行者對(duì)象.方法
2

3

4

5

6

7

8

9

10

11

12

13

1
public abstract class Command{
2
public abstract void execute();
3
}
4
5
public class Command1 extends Command{
6
private Receiver receiver;
7
public Command1(Receiver receiver){
8
this.receiver = receiver;
9
}
10
@Override
11
public void execute(){
12
receiver.doSomething();
13
}
14
}
以上Receiver就是具體的執(zhí)行對(duì)象(抽象類),該模式體現(xiàn)了高內(nèi)聚的特點(diǎn),缺點(diǎn)為有N個(gè)命令就會(huì)有N個(gè)子類,導(dǎo)致類膨脹。

2

3

4

5

6

7

8

9

10

11

12

13

14

posted on 2010-12-25 23:28 朔望魔刃 閱讀(255) 評(píng)論(0) 編輯 收藏 所屬分類: 設(shè)計(jì)模式&&數(shù)據(jù)結(jié)構(gòu)