简单的command 命令模式

例: 如仿QQ聊天室中,客户端发送不同命令,服务器端接收命令!我们经常会用switch或者if..else..等来处理,假如我们将客户端的命令看成对象即类来处理,这样扩展性更好!代码也比较好维护,代码复杂度会比较高.

简单的command模式实现
import java.util.HashMap;

abstract class Command{
   public abstract void execute();
}

class LoadCommand extends Command{
   public void execute(){
   System.out.println("LoadCommand");
   }
}

class newCommand extends Command{
   public void execute(){
     System.out.println("newCommand");
   }
}

class SaveCommand extends Command
{
 public void execute(){
  System.out.println("saveCommand");
 }
}

class RegiestCommand
{
 HashMap hashmap = new HashMap();
 public RegiestCommand()
 {
  hashmap.put("LoadCommand" , new LoadCommand());
  hashmap.put("newCommand" , new newCommand());
  hashmap.put("SaveCommand" , new SaveCommand());
 }
 
 public Command getObject(String key){
  return (Command)hashmap.get(key);
 }
}

 
public class TestCommand{
   public static void main(String[] args){
     String strCommand = args[0];
     System.out.println("strCommand:" + strCommand);
     RegiestCommand rc = new RegiestCommand();
     Command cmd = (Command)rc.getObject(strCommand);
     cmd.execute();
  }
}

通过RegiestCommand注册所有命令,客户端发送命令,服务器端通过哈希表取得命令对象!
简单实现,RegiestCommand注册所有命令需要改进!!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值