首页 > 编程语言 >Java: Command Patterns

Java: Command Patterns

时间:2022-09-27 22:35:13浏览次数:52  
标签:12 Java 09 Patterns Command 2022 import java public

 

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc CommandFromGod.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */



package com.javapatterns.command;

/**
 *
 * */
public interface CommandFromGod {
    /**
     *
     * */
    public void Execute();
}

  

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc GodRestsCommand.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */

package com.javapatterns.command;
import java.awt.*;
import java.awt.event.*;

/**
 *
 * */
public class GodRestsCommand extends Button implements CommandFromGod{

    /**
     *
     * */
    public GodRestsCommand(String caption)
    {
        super(caption);
    }
    /**
     *
     * */
    public void Execute()
    {
        System.exit(0);
    }

}

  

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc LetThereBeLandCommand.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */


package com.javapatterns.command;
import java.awt.*;
import java.awt.event.*;

/**
 *
 * */
public class LetThereBeLandCommand extends Button implements CommandFromGod{
    /**
     *
     * */
    Panel p;
    /**
     *
     * */
    public LetThereBeLandCommand(String caption, Panel pnl)
    {
        super(caption);
        p = pnl;
    }

    /**
     *
     * */
    public void Execute()
    {
        p.setBackground(Color.orange);
    }

}

  

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc LetThereBeLightCommand.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */

package com.javapatterns.command;

import java.awt.*;
import java.awt.event.*;

/**
 *
 * */
public class LetThereBeLightCommand extends Button implements CommandFromGod{
    /**
     *
     * */
    Panel p;

    /**
     *
     * */
    public LetThereBeLightCommand(String caption, Panel pnl)
    {
        super(caption);
        p = pnl;
    }

    /**
     *
     * */
    public void Execute()
    {
        p.setBackground(Color.white);
    }

}

  

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc ResetCommand.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */


package com.javapatterns.command;
import java.awt.*;
import java.awt.event.*;
/**
 *
 * */
public class ResetCommand  extends Button implements CommandFromGod{
    /**
     *
     * */
    Panel p;

    /**
     *
     * */
    public ResetCommand(String caption, Panel pnl)
    {
        super(caption);
        p = pnl;
    }

    /**
     *
     * */
    public void Execute()
    {
        p.setBackground(Color.black);
    }
}

  

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * 命令模式 Command Patterns
 * 历史版本: JDK 14.02
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc TheWorld.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */

package com.javapatterns.command;


import java.awt.*;
import java.awt.event.*;

/**
 *
 * */
public class TheWorld extends Frame implements ActionListener{

    LetThereBeLightCommand btnLight;
    LetThereBeLandCommand btnLand;
    ResetCommand btnReset;
    GodRestsCommand btnExit;
    Panel p;
    /**
     *
     * */
    public TheWorld()
    {
        super("This is the world, and God says...");

        p = new Panel();
        p.setBackground(Color.black);

        add(p);
        btnLight = new LetThereBeLightCommand("Let there be light", p);
        btnLand = new LetThereBeLandCommand("Let there be land", p);
        btnReset = new ResetCommand("Reset", p);
        btnExit = new GodRestsCommand("God rests");

        p.add(btnLight);
        p.add(btnLand);
        p.add(btnReset);
        p.add(btnExit);

        btnLight.addActionListener(this);
        btnLand.addActionListener(this);
        btnReset.addActionListener(this);
        btnExit.addActionListener(this);
        setBounds(100,100,400,200);
        setVisible(true);
    }
    /**
     *
     * */
    public void actionPerformed(ActionEvent e)
    {
        CommandFromGod obj = (CommandFromGod)e.getSource();
        obj.Execute();
    }

}

  

调用:

        //命令模式
            TheWorld theWorld=new TheWorld();

  

输出:

 

标签:12,Java,09,Patterns,Command,2022,import,java,public
From: https://www.cnblogs.com/geovindu/p/16736242.html

相关文章

  • Javaweb核心之注解开发Servlet
    这是一篇关于讲解如何正确使用51CTO博客-Markdown的排版示例,希望通过此,大家都能轻松上手,都能通过Markdown能#4注解开发Servlet4.1Servlet3.0规范4.2注解开发入门案......
  • Java多线程内存读写 —— 内存屏障的理解
    在现代计算机中,CPU往往都是多核的,而由于每个CPUCore中都有自己的高速缓存Cache,因此就会造成内存数据读写的不一致性,表现为 ​​指令乱序​​​ 与 ​​不可见性​​​ ......
  • Javaweb核心响应对象
    1响应对象1.1响应对象概述1.1.1关于响应响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端......
  • javaweb核心之会话技术
    1会话技术1.1会话管理概述1.1.1什么是会话这里的会话,指的是web开发中的一次通话过程,当打开浏览器,访问网站地址后,会话开始,当关闭浏览器(或者到了过期时间),会话结束。举......
  • JAVA设计模式-原型模式
    JAVA设计模式-原型模式介绍原型模式是一种创建型模式,用于创建重复的对象,并且保证性能。原型模式创建的对象是由原型对象自身创建的,是原型对象的一个克隆,和原型对象具有......
  • java 布尔类型的默认值
    今天在看springsecurity源码时,有这么一段代码:publicUserDetailsbuild(){StringencodedPassword=(String)this.passwordEncoder.apply(this.password......
  • IDEA——查看源码(使得查看文件是.java文件,而不是.class文件)
    今天,看Mybatis-plus的视频教程。发现,当老师【Crlt+要查看源码的部分】,跳转的源码是包含注释的。而我,看到的,却是.class文件。为什么呢?原来,为了让运行速度更快一些,maven默......
  • Java使用ProtoBuffer3时报错: Cannot resolve method 'isStringEmpty' in 'GeneratedM
    错误描述我的机器是MacM1,项目中使用了ProtoBuffer3。使用protoc程序,根据proto文件生成了Java代码。在编译Java项目的时候,报错:cannotresolvemethod'isstringempty'in......
  • 【Java基础】Java异常分类和常见异常
    1.异常异常:执行中发生的不正常情况。分为两类:Error:JVM系统内部错误、资源耗尽等严重情况。比如StackOverflowError和OutOfMemory。Exception:空指针访问、试图读取......
  • Java GUI编程(一)AWT
    GUI是什么?GUI怎么用?组件:窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件 这其实就是一个GUI1,简介:GUI核......