Resturant
// Subsystem 1
class Kitchen {
public void prepareFood() {
System.out.println("Kitchen: Preparing food...");
}
}
// Subsystem 2
class Waiter {
public void takeOrder() {
System.out.println("Waiter: Taking the order...");
}
}
// Subsystem 3
class Billing {
public void generateBill() {
System.out.println("Billing: Generating the bill...");
}
}
// Facade Class
class RestaurantFacade {
private Kitchen kitchen;
private Waiter waiter;
private Billing billing;
public RestaurantFacade() {
kitchen = new Kitchen();
waiter = new Waiter();
billing = new Billing();
}
public void placeOrder() {
System.out.println("Customer arrives to place an order.");
waiter.takeOrder();
kitchen.prepareFood();
billing.generateBill();
System.out.println("Order completed.\n");
}
}
// Main class at the end
public class Practical7 {
public static void main(String[] args) {
RestaurantFacade restaurant = new RestaurantFacade();
restaurant.placeOrder();
}
}