From f1f1609fd88fcdd8cfa5abd614aff8ae3155f3d1 Mon Sep 17 00:00:00 2001 From: im-Lily Date: Sun, 30 Jul 2023 09:48:14 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(strategy):=20=EC=A0=84=EB=9E=B5?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EC=9E=90=EB=B0=94=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/after/BlueLightRedLight.java | 13 ++++++++ .../gof/pattern/strategy/after/Client.java | 21 +++++++++++++ .../gof/pattern/strategy/after/Faster.java | 13 ++++++++ .../gof/pattern/strategy/after/Normal.java | 13 ++++++++ .../com/gof/pattern/strategy/after/Speed.java | 8 +++++ .../strategy/before/BlueLightRedLight.java | 30 +++++++++++++++++++ .../gof/pattern/strategy/before/Client.java | 10 +++++++ 7 files changed, 108 insertions(+) create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/after/BlueLightRedLight.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Client.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Faster.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Normal.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Speed.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/before/BlueLightRedLight.java create mode 100644 ria/java/gof/src/main/java/com/gof/pattern/strategy/before/Client.java diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/BlueLightRedLight.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/BlueLightRedLight.java new file mode 100644 index 0000000..2c3d6e7 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/BlueLightRedLight.java @@ -0,0 +1,13 @@ +package com.gof.pattern.strategy.after; + +// Context Class +public class BlueLightRedLight { + + public void blueLight(Speed speed) { + speed.blueLight(); + } + + public void redLight(Speed speed) { + speed.redLight(); + } +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Client.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Client.java new file mode 100644 index 0000000..cdcbd55 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Client.java @@ -0,0 +1,21 @@ +package com.gof.pattern.strategy.after; + +public class Client { + + public static void main(String[] args) { + BlueLightRedLight game = new BlueLightRedLight(); + game.blueLight(new Normal()); + game.redLight(new Faster()); + game.blueLight(new Speed() { + @Override + public void blueLight() { + System.out.println("blue light"); + } + + @Override + public void redLight() { + System.out.println("red light"); + } + }); + } +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Faster.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Faster.java new file mode 100644 index 0000000..cc3ffe9 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Faster.java @@ -0,0 +1,13 @@ +package com.gof.pattern.strategy.after; + +public class Faster implements Speed { + @Override + public void blueLight() { + System.out.println("무궁화꽃이"); + } + + @Override + public void redLight() { + System.out.println("피었습니다."); + } +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Normal.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Normal.java new file mode 100644 index 0000000..8069315 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Normal.java @@ -0,0 +1,13 @@ +package com.gof.pattern.strategy.after; + +public class Normal implements Speed { + @Override + public void blueLight() { + System.out.println("무 궁 화 꽃 이"); + } + + @Override + public void redLight() { + System.out.println("피 었 습 니 다."); + } +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Speed.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Speed.java new file mode 100644 index 0000000..e472703 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/after/Speed.java @@ -0,0 +1,8 @@ +package com.gof.pattern.strategy.after; + +public interface Speed { + + void blueLight(); + + void redLight(); +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/BlueLightRedLight.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/BlueLightRedLight.java new file mode 100644 index 0000000..2f36e80 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/BlueLightRedLight.java @@ -0,0 +1,30 @@ +package com.gof.pattern.strategy.before; + +public class BlueLightRedLight { + + private int speed; + + public BlueLightRedLight(int speed) { + this.speed = speed; + } + + public void blueLight() { + if (speed == 1) { + System.out.println("무 궁 화 꽃 이"); + } else if (speed == 2) { + System.out.println("무궁화꽃이"); + } else { + System.out.println("무광꼬치"); + } + } + + public void redLight() { + if (speed == 1) { + System.out.println("피 었 습 니 다."); + } else if (speed == 2) { + System.out.println("피었습니다."); + } else { + System.out.println("피었슴다."); + } + } +} diff --git a/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/Client.java b/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/Client.java new file mode 100644 index 0000000..f2ca930 --- /dev/null +++ b/ria/java/gof/src/main/java/com/gof/pattern/strategy/before/Client.java @@ -0,0 +1,10 @@ +package com.gof.pattern.strategy.before; + +public class Client { + + public static void main(String[] args) { + BlueLightRedLight blueLightRedLight = new BlueLightRedLight(3); + blueLightRedLight.blueLight(); + blueLightRedLight.redLight(); + } +} From 7dc959aaca18ae1e9a5af831a571cba2586490ef Mon Sep 17 00:00:00 2001 From: im-Lily Date: Sun, 6 Aug 2023 15:45:06 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat(strategy):=20=EC=A0=84=EB=9E=B5?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EC=BD=94=ED=8B=80=EB=A6=B0=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/after/BlueLightRedLight.kt | 12 +++++++++++ .../com/gof/pattern/strategy/after/Client.kt | 19 ++++++++++++++++++ .../com/gof/pattern/strategy/after/Faster.kt | 11 ++++++++++ .../com/gof/pattern/strategy/after/Normal.kt | 11 ++++++++++ .../com/gof/pattern/strategy/after/Speed.kt | 7 +++++++ .../strategy/before/BlueLightRedLight.kt | 20 +++++++++++++++++++ .../com/gof/pattern/strategy/before/Client.kt | 10 ++++++++++ 7 files changed, 90 insertions(+) create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/BlueLightRedLight.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Client.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Faster.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Normal.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Speed.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/BlueLightRedLight.kt create mode 100644 ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/Client.kt diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/BlueLightRedLight.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/BlueLightRedLight.kt new file mode 100644 index 0000000..e58ce33 --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/BlueLightRedLight.kt @@ -0,0 +1,12 @@ +package com.gof.pattern.strategy.after + +class BlueLightRedLight { + + fun blueLight(speed: Speed) { + speed.blueLight() + } + + fun redLight(speed: Speed) { + speed.redLight() + } +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Client.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Client.kt new file mode 100644 index 0000000..075d986 --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Client.kt @@ -0,0 +1,19 @@ +package com.gof.pattern.strategy.after + +class Client { +} + +fun main() { + val game = BlueLightRedLight() + game.blueLight(Normal()) + game.redLight(Faster()) + game.blueLight(object : Speed { + override fun blueLight() { + println("blue light") + } + + override fun redLight() { + println("red light") + } + }) +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Faster.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Faster.kt new file mode 100644 index 0000000..8a33429 --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Faster.kt @@ -0,0 +1,11 @@ +package com.gof.pattern.strategy.after + +class Faster : Speed { + override fun blueLight() { + println("무궁화꽃이") + } + + override fun redLight() { + println("피었습니다.") + } +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Normal.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Normal.kt new file mode 100644 index 0000000..34a3aae --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Normal.kt @@ -0,0 +1,11 @@ +package com.gof.pattern.strategy.after + +class Normal : Speed { + override fun blueLight() { + println("무 궁 화 꽃 이") + } + + override fun redLight() { + println("피 었 습 니 다.") + } +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Speed.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Speed.kt new file mode 100644 index 0000000..dad4590 --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Speed.kt @@ -0,0 +1,7 @@ +package com.gof.pattern.strategy.after + +interface Speed { + + fun blueLight() + fun redLight() +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/BlueLightRedLight.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/BlueLightRedLight.kt new file mode 100644 index 0000000..c8f40dc --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/BlueLightRedLight.kt @@ -0,0 +1,20 @@ +package com.gof.pattern.strategy.before + +class BlueLightRedLight(private val speed: Int) { + + fun blueLight() { + when (speed) { + 1 -> println("무 궁 화 꽃 이") + 2 -> println("무궁화꽃이") + else -> println("무광꼬치") + } + } + + fun redLight() { + when (speed) { + 1 -> println("피 었 습 니 다.") + 2 -> println("피었습니다.") + 3 -> println("피었슴다") + } + } +} \ No newline at end of file diff --git a/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/Client.kt b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/Client.kt new file mode 100644 index 0000000..58b3500 --- /dev/null +++ b/ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/Client.kt @@ -0,0 +1,10 @@ +package com.gof.pattern.strategy.before + +class Client { +} + +fun main() { + val blueLightRedLight = BlueLightRedLight(3) + blueLightRedLight.blueLight() + blueLightRedLight.redLight() +} \ No newline at end of file