From 6e569b43f9218dedfca08132d9b0ca0b2785f62e Mon Sep 17 00:00:00 2001 From: haerong22 Date: Fri, 17 Dec 2021 01:56:20 +0900 Subject: [PATCH] design patterns : mediator --- .../src/mediator/after/CleaningService.java | 11 ++++++++ .../gof/src/mediator/after/FrontDesk.java | 22 ++++++++++++++++ .../gof/src/mediator/after/Guest.java | 26 +++++++++++++++++++ .../gof/src/mediator/after/Restaurant.java | 9 +++++++ .../src/mediator/before/CleaningService.java | 15 +++++++++++ .../gof/src/mediator/before/Guest.java | 17 ++++++++++++ .../gof/src/mediator/before/Gym.java | 10 +++++++ .../gof/src/mediator/before/Hotel.java | 13 ++++++++++ .../gof/src/mediator/before/Restaurant.java | 13 ++++++++++ 9 files changed, 136 insertions(+) create mode 100644 design-pattern/gof/src/mediator/after/CleaningService.java create mode 100644 design-pattern/gof/src/mediator/after/FrontDesk.java create mode 100644 design-pattern/gof/src/mediator/after/Guest.java create mode 100644 design-pattern/gof/src/mediator/after/Restaurant.java create mode 100644 design-pattern/gof/src/mediator/before/CleaningService.java create mode 100644 design-pattern/gof/src/mediator/before/Guest.java create mode 100644 design-pattern/gof/src/mediator/before/Gym.java create mode 100644 design-pattern/gof/src/mediator/before/Hotel.java create mode 100644 design-pattern/gof/src/mediator/before/Restaurant.java diff --git a/design-pattern/gof/src/mediator/after/CleaningService.java b/design-pattern/gof/src/mediator/after/CleaningService.java new file mode 100644 index 00000000..939005f6 --- /dev/null +++ b/design-pattern/gof/src/mediator/after/CleaningService.java @@ -0,0 +1,11 @@ +package mediator.after; + +public class CleaningService { + + private FrontDesk frontDesk = new FrontDesk(); + + public void getTowers(Integer id, int numberOfTowers) { + String roomNumber = this.frontDesk.getRoomNumberFor(id); + System.out.println("provide " + numberOfTowers + " to " + roomNumber); + } +} diff --git a/design-pattern/gof/src/mediator/after/FrontDesk.java b/design-pattern/gof/src/mediator/after/FrontDesk.java new file mode 100644 index 00000000..bfc5f3fc --- /dev/null +++ b/design-pattern/gof/src/mediator/after/FrontDesk.java @@ -0,0 +1,22 @@ +package mediator.after; + +import java.time.LocalDateTime; + +public class FrontDesk { + + private CleaningService cleaningService = new CleaningService(); + + private Restaurant restaurant = new Restaurant(); + + public void getTowers(Guest guest, int numberOfTowers) { + cleaningService.getTowers(guest.getId(), numberOfTowers); + } + + public String getRoomNumberFor(Integer guestId) { + return "1111"; + } + + public void dinner(Guest guest, LocalDateTime dateTime) { + restaurant.dinner(guest.getId(), dateTime); + } +} diff --git a/design-pattern/gof/src/mediator/after/Guest.java b/design-pattern/gof/src/mediator/after/Guest.java new file mode 100644 index 00000000..85438d1e --- /dev/null +++ b/design-pattern/gof/src/mediator/after/Guest.java @@ -0,0 +1,26 @@ +package mediator.after; + +import java.time.LocalDateTime; + +public class Guest { + + private Integer id; + + private FrontDesk frontDesk = new FrontDesk(); + + public void getTowers(int numberOfTowers) { + this.frontDesk.getTowers(this, numberOfTowers); + } + + public void dinner(LocalDateTime dateTime) { + this.frontDesk.dinner(this, dateTime); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/design-pattern/gof/src/mediator/after/Restaurant.java b/design-pattern/gof/src/mediator/after/Restaurant.java new file mode 100644 index 00000000..94d82183 --- /dev/null +++ b/design-pattern/gof/src/mediator/after/Restaurant.java @@ -0,0 +1,9 @@ +package mediator.after; + +import java.time.LocalDateTime; + +public class Restaurant { + public void dinner(Integer id, LocalDateTime dateTime) { + + } +} diff --git a/design-pattern/gof/src/mediator/before/CleaningService.java b/design-pattern/gof/src/mediator/before/CleaningService.java new file mode 100644 index 00000000..126e7154 --- /dev/null +++ b/design-pattern/gof/src/mediator/before/CleaningService.java @@ -0,0 +1,15 @@ +package mediator.before; + +public class CleaningService { + public void clean(Gym gym) { + System.out.println("clean " + gym); + } + + public void getTower(Guest guest, int numberOfTower) { + System.out.println(numberOfTower + " towers to " + guest); + } + + public void clean(Restaurant restaurant) { + System.out.println("clean " + restaurant); + } +} diff --git a/design-pattern/gof/src/mediator/before/Guest.java b/design-pattern/gof/src/mediator/before/Guest.java new file mode 100644 index 00000000..5caca0d0 --- /dev/null +++ b/design-pattern/gof/src/mediator/before/Guest.java @@ -0,0 +1,17 @@ +package mediator.before; + +public class Guest { + + private Restaurant restaurant = new Restaurant(); + + private CleaningService cleaningService = new CleaningService(); + + public void dinner() { + restaurant.dinner(this); + } + + public void getTower(int numberOfTower) { + cleaningService.getTower(this, numberOfTower); + } + +} diff --git a/design-pattern/gof/src/mediator/before/Gym.java b/design-pattern/gof/src/mediator/before/Gym.java new file mode 100644 index 00000000..e9cd07a6 --- /dev/null +++ b/design-pattern/gof/src/mediator/before/Gym.java @@ -0,0 +1,10 @@ +package mediator.before; + +public class Gym { + + private CleaningService cleaningService; + + public void clean() { + cleaningService.clean(this); + } +} diff --git a/design-pattern/gof/src/mediator/before/Hotel.java b/design-pattern/gof/src/mediator/before/Hotel.java new file mode 100644 index 00000000..cbcf51b0 --- /dev/null +++ b/design-pattern/gof/src/mediator/before/Hotel.java @@ -0,0 +1,13 @@ +package mediator.before; + +public class Hotel { + + public static void main(String[] args) { + Guest guest = new Guest(); + guest.getTower(3); + guest.dinner(); + + Restaurant restaurant = new Restaurant(); + restaurant.clean(); + } +} diff --git a/design-pattern/gof/src/mediator/before/Restaurant.java b/design-pattern/gof/src/mediator/before/Restaurant.java new file mode 100644 index 00000000..7a4191a3 --- /dev/null +++ b/design-pattern/gof/src/mediator/before/Restaurant.java @@ -0,0 +1,13 @@ +package mediator.before; + +public class Restaurant { + + private CleaningService cleaningService = new CleaningService(); + public void dinner(Guest guest) { + System.out.println("dinner " + guest); + } + + public void clean() { + cleaningService.clean(this); + } +}