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 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(); + } +}