int main() { auto amp = std::make_shared<Amplifier>(); auto cd = std::make_shared<CdPlayer>(); auto dvd = std::make_shared<DvdPlayer>(); auto popper = std::make_shared<PopcornPopper>(); auto projector = std::make_shared<Projector>(); auto screen = std::make_shared<Screen>(); auto lights = std::make_shared<TheaterLights>(); auto tuner = std::make_shared<Tuner>(); HomeTheaterFacade theater(amp, tuner, dvd, cd, projector, screen, lights, popper); theater.startMovie("Kung Fu Panda"); theater.endMovie(); }
void playWithHomeTheaterFacade() { // Create all the parts of the home theatre system // Not encapsulated or owned by the facade. Amplifier amp("Top-O-Line Amplifier"); CdPlayer cd("Top-O-Line CD Player", &); DvdPlayer dvd("Top-O-Line DVD Player", &); Screen screen("My Theater Screen"); PopcornPopper popper("My Popcorn Popper"); Tuner tuner("Top-O-Line AM/FM Tuner", &); TheaterLights lights("Theater Ceiling Lights"); Projector projector("Top-O-Line Projector"); HomeTheaterFacade theater(&, &tuner, &dvd, &cd, &projector, &lights, &screen, &popper); theater.watchMovie("Raiders of the Lost Ark"); theater.endMovie(); }