博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
灯泡开关小程序
阅读量:7034 次
发布时间:2019-06-28

本文共 1824 字,大约阅读时间需要 6 分钟。

hot3.png

灯泡开关小程序

方法一

灯类

//怎么产生灯亮,灯灭的动作

public class Light{

    private boolean status = true;

    public Event lightOn(){

      return new OnEvent();

}

    public Event lightOff(){

      return new OffEvent();
}

    public static void main(String[] args){

       Light light = new Light();

       Event event = light.lightOff();

       Controller controller = new Controller();

       controller.addEvent(event);

//这样会存在 按几次事件 就会出现多少次 灯亮了 或 灯灭了的问题
       // controller.addEvent(event);
       // controller.addEvent(event);
       // controller.addEvent(event);
   

 

}

}

----------

//事件接口 根据不同的事件 执行不同的逻辑

//事件接口 类 Event

public interface Event{

     public void execute();
}

------------

//实现接口
public class OnEvent implements Event{
     @Override
     public void execute(){
      System.out.println("灯亮了...");
}

}

----------
public class OffEvent implements Event{
     @Override
     public void execute(){
      System.out.println("灯灭了...");
}

}

-------------

//开关的控制 类

public class Controller{

     public void addEvent(Event event){
       event.execute();
}

}

---------------------------------------------------------------------

方法二
解决方法一的问题手段

public class Light{

   private boolean status = true;   //灯亮

   public Event lightOn(){

     return new Event(){

     @Override

     public void execute(){
      if(!status){

       status = true;

       System.out.println("灯亮了...");
}

}

};

}

    public Event lightOff(){

      return new Event(){
      @Override
     public void execute(){
     if(status){
      status = false;
      System.out.println("灯灭了....");
}

}

};

   public static void main(String[] args) {

  Light light = new Light();
  Event event = light.lightOff();  //指令
  
  Controller controller = new Controller();
  
  controller.addEvent(event);  //执行指令
  

}

}

-------------

//开关控制 类

public class Controller {

 
 public void addEvent(Event event){
  System.out.println("解析指令,然后执行....");
  event.execute();
 }
}

------------------

//事件接口,根据不同的事件,执行不同的逻辑

public interface Event {
 public void execute();
}

转载于:https://my.oschina.net/u/2542711/blog/540735

你可能感兴趣的文章
mybatis 各种传入类型
查看>>
打车平台智能提示趴窝,后台性能测试该从何突破?
查看>>
多队列网卡设置CPU中断绑定
查看>>
[Servlet&JSP] 初识ServletConfig
查看>>
搭建Jasig CAS中央认证服务实现单点登录——搭建Tomcat并实现SSL安全连接
查看>>
[MySQL 源码] 关于bug#65389的碎碎念
查看>>
ArcSDE10.1使用st_geometry环境配置
查看>>
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()
查看>>
使用Json Web Token设计Passport系统
查看>>
设计模式之动态代理(dynamic proxy)
查看>>
从零开始学_JavaScript_系列(八)——js系列<2>(事件触发顺序、文本读取、js编写ajax、输入验证、下拉菜单)...
查看>>
Java我的高效编程之环境搭建
查看>>
如何为自己制作出一份优秀的简历
查看>>
testing - 测试基本使用接口
查看>>
开放平台_OAuth1.0
查看>>
拥抱Core Graphics吧!
查看>>
Meta标签中的viewport属性及含义
查看>>
在线扩容LVM硬盘容量
查看>>
排序高级之交换排序_梳排序
查看>>
SpriteBuilder中节点的%位置移动
查看>>