隨筆-95  評論-31  文章-10  trackbacks-0

          關鍵命令調用類:

           1/**
           2 * 該類持有Command抽象類,action方法即可調用
           3 * Command的子類方法名稱都為execute
           4 **/

           5public 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()方法,所以其子類構造參數為命令執行者,并且持有命令執行者對象,execute方法里面即為命令執行者對象.方法
           1public abstract class Command{
           2   public abstract void execute();
           3}

           4
           5public 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就是具體的執行對象(抽象類),該模式體現了高內聚的特點,缺點為有N個命令就會有N個子類,導致類膨脹。
          posted on 2010-12-25 23:28 朔望魔刃 閱讀(255) 評論(0)  編輯  收藏 所屬分類: 設計模式&&數據結構
          主站蜘蛛池模板: 云梦县| 孝感市| 新民市| 视频| 湟中县| 贵定县| 肇州县| 湘西| 临泉县| 正安县| 阿瓦提县| 钦州市| 阿克陶县| 垣曲县| 凤山县| 曲阳县| 南雄市| 邵阳县| 泸定县| 惠州市| 黎平县| 乐业县| 榕江县| 隆回县| 博爱县| 信丰县| 芜湖县| 浦东新区| 永丰县| 西乌珠穆沁旗| 郎溪县| 读书| 将乐县| 金昌市| 十堰市| 中卫市| 安达市| 喜德县| 西藏| 青冈县| 无为县|