`
wzping
  • 浏览: 101260 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

戏说java设计模式中的命令模式

阅读更多
JAVA的设计模式我想大家都知道,但每个人的理解并不相同,我在这里只是阐述我的观点,要是与您的观点不同请您原谅和提出您的宝贵意见。
  
  为了把命令模式讲清楚,我要举一个大家都影象深刻的例子以便大家的理解,那就借用的足球的例子吧。
  
  UML略
  我设计了五个类,分别是:球队老板,老板的命令(接口),教练,命令的内容,球员。
  
  球员的示例代码
  
  public class 球员 {
     public void run() {
        球场上奔跑;
        }
     public void Norun() {
        球场上不奔跑;
        }
     public void shot() {
        射门;
        }
     public void Noshot() {
        不射门;
        }
     public void hoo() {
        积极比赛;
        }
  }
  
  教练类的示例代码
  
  public class 命令的内容 implements 老板的命令 {
     球员 team;
     public 命令的内容 ( 球员 ateam) {
        this.team = ateam;
      }
     //赢球的方法
    public void victory() {
       team.hoo();
       team.run();
       team.shot();
       }
     //输球的方法
     public void fail() {
       team.Norun();
       team.Noshot();
       }
  }
  
  老板的命令类的示例代码
  
  public interface 老板的命令 {
     void victory();
     void fail();
  }
  
  教练的示例代码
  
  public class 教练 {
     private 老板的命令 bossCommand;
     public 教练(老板的命令 abossCommand) {
     this.bossCommand = abossCommand;
     }
  }
  
  老板的示例代码
  
  public class 老板 {
     public static void main(String[] args) {
       球员 team = new 球员();
       老板的命令 bossCommand = new 命令的内容(team);
       教练 drillmaster = new 教练(bossCommand);
       drillmaster.victory();//赢球
       drillmaster.fail();//输球
     }
  }
分享到:
评论
1 楼 wzping 2008-10-21  
命令模式的引入:
      想当初蜀汉丞相诸葛亮为早日完成先帝托孤之遗愿,为在三军中起到表率的作用,事必亲躬,"夙兴夜寐,罚二十以上皆亲览焉"。结果操劳过度,英年早逝。设想一下,如果诸葛丞相配备一名秘书,自己只需发布命令,由秘书将命令分配到各个不同的部门去执行,就不至于如此辛劳了。这里面就有命令模式的体现,诸葛亮相当于客户端,秘书相当于命令的调用着,各个不同的部门则是具体的命令类,执行命令的人则是命令接收者。

相关推荐

Global site tag (gtag.js) - Google Analytics