Change the given source code for Home Automation application into Command Pattern. I have listed the following source code   1. Bathroom.java public class Bathroom extends Room {     private String hotWater; } 2. Bedroom.java public class Bedroom extends Room { private String bed; } 3. Client.java public class Client { public static void main(String[] args) {          House house = new House();          house.addRoom(new LivingRoom());          house.addRoom(new Bedroom());          house.addRoom(new Bedroom());          house.addRoom(new Bedroom());          house.addRoom(new Kitchen());          house.addRoom(new Bathroom());          house.rooms.forEach(Room::switchLights);       } } 4.FloorLamp.java public class FloorLamp { private Light light;     public FloorLamp(){         this.light = new Light();     }     public void switchLights(){         light.switchLights();         System.out.println(this.getClass()+"'s light is "+this.light.isSwitchedon());     } } 5.House.java import java.util.ArrayList; import java.util.List;   public class House { List rooms;     public House(){         rooms = new ArrayList<>();     }     public void addRoom(Room room)     {         rooms.add(room);     } } 6.Kitchen.java public class Kitchen extends Room{     private String oven; } 7.Light.java public class Light { private boolean switchedon = false;     public boolean isSwitchedon()     {         return switchedon;     }     /*public void setSwitchedon(boolean switchedon)     {         this.switchedon = switchedon;     }*/     public void switchLights()     {         switchedon = !switchedon;         //System.out.println(this.getClass()+"'s light is "+this.switchedon);     } } 8. LivingRoom.java public class LivingRoom extends Room{     private String windows;     private String slidingDoors;     private FloorLamp floorLamp;     public LivingRoom(){         floorLamp = new FloorLamp();         floorLamp.switchLights();     } } 9. Room.java public class Room { private Light light;     public Room()    {         this.light = new Light();     }     public void switchLights()     {         light.switchLights();         //light.setSwitchedon(!light.isSwitchedon());//if on turns off, if off turns on         System.out.println(this.getClass()+"'s light is "+this.light.isSwitchedon());     } }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Change the given source code for Home Automation application into Command Pattern. I have listed the following source code

 

1. Bathroom.java

public class Bathroom extends Room {

    private String hotWater;

}

2. Bedroom.java

public class Bedroom extends Room {

private String bed;

}

3. Client.java

public class Client {

public static void main(String[] args) {

         House house = new House();

         house.addRoom(new LivingRoom());

         house.addRoom(new Bedroom());

         house.addRoom(new Bedroom());

         house.addRoom(new Bedroom());

         house.addRoom(new Kitchen());

         house.addRoom(new Bathroom());

         house.rooms.forEach(Room::switchLights); 

     }

}

4.FloorLamp.java

public class FloorLamp {

private Light light;

    public FloorLamp(){

        this.light = new Light();

    }

    public void switchLights(){

        light.switchLights();

        System.out.println(this.getClass()+"'s light is "+this.light.isSwitchedon());

    }

}

5.House.java

import java.util.ArrayList;

import java.util.List;

 

public class House {

List<Room> rooms;

    public House(){

        rooms = new ArrayList<>();

    }

    public void addRoom(Room room)

    {

        rooms.add(room);

    }

}

6.Kitchen.java

public class Kitchen extends Room{

    private String oven;

}

7.Light.java

public class Light {

private boolean switchedon = false;

    public boolean isSwitchedon()

    {

        return switchedon;

    }

    /*public void setSwitchedon(boolean switchedon)

    {

        this.switchedon = switchedon;

    }*/

    public void switchLights()

    {

        switchedon = !switchedon;

        //System.out.println(this.getClass()+"'s light is "+this.switchedon);

    }

}

8. LivingRoom.java

public class LivingRoom extends Room{

    private String windows;

    private String slidingDoors;

    private FloorLamp floorLamp;

    public LivingRoom(){

        floorLamp = new FloorLamp();

        floorLamp.switchLights();

    }

}

9. Room.java

public class Room {

private Light light;

    public Room()    {

        this.light = new Light();

    }

    public void switchLights()

    {

        light.switchLights();

        //light.setSwitchedon(!light.isSwitchedon());//if on turns off, if off turns on

        System.out.println(this.getClass()+"'s light is "+this.light.isSwitchedon());

    }

}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Introduction to Interface
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-engineering and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY