Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.gof.pattern.strategy.after

class BlueLightRedLight {

fun blueLight(speed: Speed) {
speed.blueLight()
}

fun redLight(speed: Speed) {
speed.redLight()
}
}
19 changes: 19 additions & 0 deletions ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Client.kt
Original file line number Diff line number Diff line change
@@ -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")
}
})
}
11 changes: 11 additions & 0 deletions ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Faster.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.gof.pattern.strategy.after

class Faster : Speed {
override fun blueLight() {
println("무궁화꽃이")
}

override fun redLight() {
println("피었습니다.")
}
}
11 changes: 11 additions & 0 deletions ria/gof/src/main/kotlin/com/gof/pattern/strategy/after/Normal.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.gof.pattern.strategy.after

class Normal : Speed {
override fun blueLight() {
println("무 궁 화 꽃 이")
}

override fun redLight() {
println("피 었 습 니 다.")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.gof.pattern.strategy.after

interface Speed {

fun blueLight()
fun redLight()
}
Original file line number Diff line number Diff line change
@@ -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("피었슴다")
}
}
}
10 changes: 10 additions & 0 deletions ria/gof/src/main/kotlin/com/gof/pattern/strategy/before/Client.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.gof.pattern.strategy.before

class Client {
}

fun main() {
val blueLightRedLight = BlueLightRedLight(3)
blueLightRedLight.blueLight()
blueLightRedLight.redLight()
}
Original file line number Diff line number Diff line change
@@ -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();
}
}
Original file line number Diff line number Diff line change
@@ -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");
}
});
}
}
Original file line number Diff line number Diff line change
@@ -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("피었습니다.");
}
}
Original file line number Diff line number Diff line change
@@ -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("피 었 습 니 다.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.gof.pattern.strategy.after;

public interface Speed {

void blueLight();

void redLight();
}
Original file line number Diff line number Diff line change
@@ -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("피었슴다.");
}
}
}
Original file line number Diff line number Diff line change
@@ -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();
}
}