简单的命令模式

来源:互联网 发布:南风知我意2朱旧番外 编辑:程序博客网 时间:2024/06/15 01:41

将命令分装成对象,传递给调用者,可以使请求调用者和请求接受者之间有效解耦!!!

package com.xul.commandmodel;import java.time.Period;/** * 命令模式 */public class Commendmodel {    SuperFather obj = null;    public void executeCommand(){        obj.execute();    }    public SuperFather getObj() {        return obj;    }    public void setObj(SuperFather obj) {        this.obj = obj;    }    public static void main(String[] args) {        Commendmodel commendmodel = new Commendmodel();        People pro = new People();        PeopleEatFanCommand peopleEatFanCommand = new PeopleEatFanCommand();        peopleEatFanCommand.setPeo(pro);        PeopleRunCommand runCommand = new PeopleRunCommand();        runCommand.setPeo(pro);        PeopleSleepCommand sleepCommand = new PeopleSleepCommand();        sleepCommand.setPeo(pro);        commendmodel.setObj(peopleEatFanCommand);        commendmodel.executeCommand();        commendmodel.setObj(runCommand);        commendmodel.executeCommand();        commendmodel.setObj(sleepCommand);        commendmodel.executeCommand();    }}/* * 超级父类 */interface SuperFather{    public void execute();}class People {    public void eatFan(){        System.out.println("eatFan");    }    public void sleep(){        System.out.println("sleep");    }    public void run(){        System.out.println("run");    }}class PeopleEatFanCommand implements SuperFather{    People peo = null;    public void setPeo(People peo) {        this.peo = peo;    }    @Override    public void execute() {        peo.eatFan();    }}class PeopleSleepCommand implements SuperFather{    People peo = null;    public void setPeo(People peo) {        this.peo = peo;    }    @Override    public void execute() {        peo.sleep();    }}class PeopleRunCommand implements SuperFather{    People peo = null;    public void setPeo(People peo) {        this.peo = peo;    }    @Override    public void execute() {        peo.run();    }}
0 0
原创粉丝点击