Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions 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
Check Mark
Knowledge Booster
Background pattern image
Computer Engineering
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
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY