首页 > 编程知识 正文

设计模式命令模式是什么,命令行设计模式

时间:2023-05-04 03:43:31 阅读:260080 作者:3580

房间中的开关是命令模式的一个实例,现用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并编程模拟实现。


类图:


实现代码:

抽象命令类Command :

package CommandPattern;

 

public abstract class  Command {

    public abstract void excute();

}

 

具体命令类LightCommand :

package CommandPattern;

 

public class LightCommand extends Command{

    LightReceiver lightReceiver = new LightReceiver();

    @Override

    public void excute() {

        System.out.println("打开电灯开关");

        lightReceiver.action();

    }

}


具体命令类FanCommand :

package CommandPattern;

 

public class FanCommand extends Command {

    FanReceiver fanReceiver = new FanReceiver();

    @Override

    public void excute() {

        System.out.println("打开电风扇开关");

        fanReceiver.action();

    }

}


调用者类Invoker:

package CommandPattern;

 

public class Invoker {

    private Command command;

 

    public  Invoker(Command command){

        this.command = command;

 

    }

    public void setCommand(Command command) {

        this.command = command;

    }

    public void call(){

        command.excute();

    }

}

 

接受者类LightReceiver :

package CommandPattern;

 

public class LightReceiver {

    public void action(){

        System.out.println("电灯亮");

    }

}

 

接受者类FanReceiver :

package CommandPattern;

 

public class FanReceiver {

    public void action(){

        System.out.println("电风扇转");

    }

}

 

客户端类Client :

package CommandPattern;

 

public class Client {

    public static void main(String[] args) {

        Command command;

//        command = new LightCommand();

        command = new FanCommand();

        Invoker invoker = new Invoker(command);

        invoker.call();

    }

}



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。