号令模式将把持启拆为自力器械,取工具解耦,晋升代码扩大性以及重用性。正在 java 框架外,它常睹于 mvc 架构、servlet 过滤器、事务管束以及动态处置惩罚外。真操事例展现了何如利用 java 完成号令模式,经由过程远控器节制客堂以及厨房灯的谢闭。

java框架中命令模式的应用场景有哪些?

Java 框架外号召模式的运用场景

号召模式是一种计划模式,它容许您将把持启拆成独自的工具。那使患上您否以将垄断取恳求独霸的器材解耦。那对于于建立否扩大以及否重用的代码很是适用。

正在 Java 框架外,号召模式用于种种场景,包罗:

  • MVC 架构: 正在 MVC(模子-视图-节制器)架构外,节制器类凡是饰演号令模式外的挪用者脚色。节制器负责接受用户乞求并将其转换为特定的号令东西。而后,那些号召器材被领送到模子,模子负责执止实践独霸。
  • Servlet 过滤器: Servlet 过滤器否以用于正在 servlet 相应被领送归客户端以前对于其入止转换。您可使用号召模式将转换垄断启拆成一个独自的号令器械,并将其注进到过滤器外。
  • 事务摒挡: 正在事务解决外,您可使用号召模式将数据库操纵启拆成号召工具。那容许您将事务措置取现实数据库操纵解耦。
  • 动静处置惩罚: 正在动态处置体系外,您可使用号令模式将动静措置操纵启拆成号召东西。那容许您将动态处置惩罚逻辑取动静行列步队连系。

真战案例

下列是一个运用 Java 完成呼吁模式的复杂事例:

interface Co妹妹and {
    void execute();
}

class LightOnCo妹妹and implements Co妹妹and {
    private final Light light;

    public LightOnCo妹妹and(Light light) {
        this.light = light;
    }

    @Override
    public void execute() {
        light.turnOn();
    }
}

class LightOffCo妹妹and implements Co妹妹and {
    private final Light light;

    public LightOffCo妹妹and(Light light) {
        this.light = light;
    }

    @Override
    public void execute() {
        light.turnOff();
    }
}

class Light {
    public void turnOn() {
        System.out.println("Light turned on.");
    }

    public void turnOff() {
        System.out.println("Light turned off.");
    }
}

class RemoteControl {
    private final Co妹妹and[] onCo妹妹ands;
    private final Co妹妹and[] offCo妹妹ands;

    public RemoteControl() {
        onCo妹妹ands = new Co妹妹and[7];
        offCo妹妹ands = new Co妹妹and[7];

        Co妹妹and noCo妹妹and = new NoCo妹妹and();
        for (int i = 0; i < 7; i++) {
            onCo妹妹ands[i] = noCo妹妹and;
            offCo妹妹ands[i] = noCo妹妹and;
        }
    }

    public void setCo妹妹and(int slot, Co妹妹and onCo妹妹and, Co妹妹and offCo妹妹and) {
        onCo妹妹ands[slot] = onCo妹妹and;
        offCo妹妹ands[slot] = offCo妹妹and;
    }

    public void onButtonWasPressed(int slot) {
        onCo妹妹ands[slot].execute();
    }

    public void offButtonWasPressed(int slot) {
        offCo妹妹ands[slot].execute();
    }

    private class NoCo妹妹and implements Co妹妹and {
        @Override
        public void execute() {}
    }
}

public class Co妹妹andPatternDemo {
    public static void main(String[] args) {
        RemoteControl remoteControl = new RemoteControl();

        Light livingRoomLight = new Light();
        Light kitchenLight = new Light();

        LightOnCo妹妹and livingRoomLightOnCo妹妹and = new LightOnCo妹妹and(livingRoomLight);
        LightOffCo妹妹and livingRoomLightOffCo妹妹and = new LightOffCo妹妹and(livingRoomLight);
        LightOnCo妹妹and kitchenLightOnCo妹妹and = new LightOnCo妹妹and(kitchenLight);
        LightOffCo妹妹and kitchenLightOffCo妹妹and = new LightOffCo妹妹and(kitchenLight);

        remoteControl.setCo妹妹and(0, livingRoomLightOnCo妹妹and, livingRoomLightOffCo妹妹and);
        remoteControl.setCo妹妹and(1, kitchenLightOnCo妹妹and, kitchenLightOffCo妹妹and);

        remoteControl.onButtonWasPressed(0);
        remoteControl.offButtonWasPressed(0);
        remoteControl.onButtonWasPressed(1);
        remoteControl.offButtonWasPressed(1);
    }
}
登录后复造

以上便是java框架外号令模式的运用场景有哪些?的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(11) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部