diff --git a/design-pattern/gof/src/bridge/after/App.java b/design-pattern/gof/src/bridge/after/App.java new file mode 100644 index 00000000..226fd908 --- /dev/null +++ b/design-pattern/gof/src/bridge/after/App.java @@ -0,0 +1,14 @@ +package bridge.after; + +public class App { + + public static void main(String[] args) { + Champion kda아리 = new 아리(new KDA()); + kda아리.move(); + kda아리.skillQ(); + + Champion poolParty아리 = new 아리(new PoolParty()); + poolParty아리.move(); + poolParty아리.skillQ(); + } +} diff --git a/design-pattern/gof/src/bridge/after/Champion.java b/design-pattern/gof/src/bridge/after/Champion.java new file mode 100644 index 00000000..22b7c4cf --- /dev/null +++ b/design-pattern/gof/src/bridge/after/Champion.java @@ -0,0 +1,15 @@ +package bridge.after; + +public interface Champion { + + void move(); + + void skillQ(); + + void skillW(); + + void skillE(); + + void skillR(); + +} diff --git a/design-pattern/gof/src/bridge/after/DefaultChampion.java b/design-pattern/gof/src/bridge/after/DefaultChampion.java new file mode 100644 index 00000000..912195e7 --- /dev/null +++ b/design-pattern/gof/src/bridge/after/DefaultChampion.java @@ -0,0 +1,37 @@ +package bridge.after; + +public class DefaultChampion implements Champion { + + private Skin skin; + private String name; + + public DefaultChampion(Skin skin, String name) { + this.skin = skin; + this.name = name; + } + + @Override + public void move() { + System.out.printf("%s %s move\n", skin.getName(), this.name); + } + + @Override + public void skillQ() { + System.out.printf("%s %s skill Q\n", skin.getName(), this.name); + } + + @Override + public void skillW() { + System.out.printf("%s %s skill W\n", skin.getName(), this.name); + } + + @Override + public void skillE() { + System.out.printf("%s %s skill E\n", skin.getName(), this.name); + } + + @Override + public void skillR() { + System.out.printf("%s %s skill R\n", skin.getName(), this.name); + } +} diff --git a/design-pattern/gof/src/bridge/after/KDA.java b/design-pattern/gof/src/bridge/after/KDA.java new file mode 100644 index 00000000..e557b5cb --- /dev/null +++ b/design-pattern/gof/src/bridge/after/KDA.java @@ -0,0 +1,8 @@ +package bridge.after; + +public class KDA implements Skin { + @Override + public String getName() { + return "KDA"; + } +} diff --git a/design-pattern/gof/src/bridge/after/PoolParty.java b/design-pattern/gof/src/bridge/after/PoolParty.java new file mode 100644 index 00000000..59f54a7b --- /dev/null +++ b/design-pattern/gof/src/bridge/after/PoolParty.java @@ -0,0 +1,8 @@ +package bridge.after; + +public class PoolParty implements Skin { + @Override + public String getName() { + return "PoolParty"; + } +} diff --git a/design-pattern/gof/src/bridge/after/Skin.java b/design-pattern/gof/src/bridge/after/Skin.java new file mode 100644 index 00000000..d54f4f0d --- /dev/null +++ b/design-pattern/gof/src/bridge/after/Skin.java @@ -0,0 +1,5 @@ +package bridge.after; + +public interface Skin { + String getName(); +} diff --git a/design-pattern/gof/src/bridge/after/아리.java b/design-pattern/gof/src/bridge/after/아리.java new file mode 100644 index 00000000..57788dc9 --- /dev/null +++ b/design-pattern/gof/src/bridge/after/아리.java @@ -0,0 +1,8 @@ +package bridge.after; + +public class 아리 extends DefaultChampion { + + public 아리(Skin skin) { + super(skin, "아리"); + } +} diff --git a/design-pattern/gof/src/bridge/after/아칼리.java b/design-pattern/gof/src/bridge/after/아칼리.java new file mode 100644 index 00000000..55a3bb81 --- /dev/null +++ b/design-pattern/gof/src/bridge/after/아칼리.java @@ -0,0 +1,8 @@ +package bridge.after; + +public class 아칼리 extends DefaultChampion { + + public 아칼리(Skin skin) { + super(skin, "아칼리"); + } +} diff --git a/design-pattern/gof/src/bridge/before/App.java b/design-pattern/gof/src/bridge/before/App.java new file mode 100644 index 00000000..dfd6483e --- /dev/null +++ b/design-pattern/gof/src/bridge/before/App.java @@ -0,0 +1,10 @@ +package bridge.before; + +public class App { + + public static void main(String[] args) { + Champion kda아리 = new KDA아리(); + kda아리.skillQ(); + kda아리.skillR(); + } +} diff --git a/design-pattern/gof/src/bridge/before/Champion.java b/design-pattern/gof/src/bridge/before/Champion.java new file mode 100644 index 00000000..4f1c9fff --- /dev/null +++ b/design-pattern/gof/src/bridge/before/Champion.java @@ -0,0 +1,15 @@ +package bridge.before; + +public interface Champion { + + void move(); + + void skillQ(); + + void skillW(); + + void skillE(); + + void skillR(); + +} diff --git a/design-pattern/gof/src/bridge/before/KDA아리.java b/design-pattern/gof/src/bridge/before/KDA아리.java new file mode 100644 index 00000000..fe324ea4 --- /dev/null +++ b/design-pattern/gof/src/bridge/before/KDA아리.java @@ -0,0 +1,30 @@ +package bridge.before; + +public class KDA아리 implements Champion { + + @Override + public void move() { + System.out.println("KDA 아리 move"); + } + + @Override + public void skillQ() { + System.out.println("KDA 아리 Q"); + } + + @Override + public void skillW() { + System.out.println("KDA 아리 W"); + } + + @Override + public void skillE() { + System.out.println("KDA 아리 E"); + } + + @Override + public void skillR() { + System.out.println("KDA 아리 R"); + } + +} diff --git a/design-pattern/gof/src/bridge/before/KDA아칼리.java b/design-pattern/gof/src/bridge/before/KDA아칼리.java new file mode 100644 index 00000000..9e2ff5af --- /dev/null +++ b/design-pattern/gof/src/bridge/before/KDA아칼리.java @@ -0,0 +1,4 @@ +package bridge.before; + +public class KDA아칼리 { +} diff --git a/design-pattern/gof/src/bridge/before/KDA카이사.java b/design-pattern/gof/src/bridge/before/KDA카이사.java new file mode 100644 index 00000000..f6f90633 --- /dev/null +++ b/design-pattern/gof/src/bridge/before/KDA카이사.java @@ -0,0 +1,4 @@ +package bridge.before; + +public class KDA카이사 { +} diff --git a/design-pattern/gof/src/bridge/before/PoolParty아리.java b/design-pattern/gof/src/bridge/before/PoolParty아리.java new file mode 100644 index 00000000..89fdbab5 --- /dev/null +++ b/design-pattern/gof/src/bridge/before/PoolParty아리.java @@ -0,0 +1,30 @@ +package bridge.before; + +public class PoolParty아리 implements Champion { + + @Override + public void move() { + System.out.println("PoolParty move"); + } + + @Override + public void skillQ() { + System.out.println("PoolParty Q"); + } + + @Override + public void skillW() { + System.out.println("PoolParty W"); + } + + @Override + public void skillE() { + System.out.println("PoolParty E"); + } + + @Override + public void skillR() { + System.out.println("PoolParty R"); + } + +} diff --git a/design-pattern/gof/src/bridge/before/PoolParty아칼리.java b/design-pattern/gof/src/bridge/before/PoolParty아칼리.java new file mode 100644 index 00000000..9649c263 --- /dev/null +++ b/design-pattern/gof/src/bridge/before/PoolParty아칼리.java @@ -0,0 +1,4 @@ +package bridge.before; + +public class PoolParty아칼리 { +} diff --git a/design-pattern/gof/src/bridge/before/PoolParty카이사.java b/design-pattern/gof/src/bridge/before/PoolParty카이사.java new file mode 100644 index 00000000..db8a4cde --- /dev/null +++ b/design-pattern/gof/src/bridge/before/PoolParty카이사.java @@ -0,0 +1,4 @@ +package bridge.before; + +public class PoolParty카이사 { +}