From 39a39bdbded168332ff24f75c3a51395814f63af Mon Sep 17 00:00:00 2001 From: kim Date: Thu, 7 Jan 2021 15:34:50 +0900 Subject: [PATCH] Strategy Pattern --- codingtest/src/Test.java | 27 ----------------- design-pattern/src/Strategy/AObj.java | 14 +++++++++ design-pattern/src/Strategy/Ainterface.java | 7 +++++ .../src/Strategy/AinterfaceImpl.java | 8 +++++ design-pattern/src/Strategy/Ax.java | 8 +++++ .../src/Strategy/GameCharacter.java | 20 +++++++++++++ design-pattern/src/Strategy/Gun.java | 8 +++++ design-pattern/src/Strategy/Main.java | 23 ++++++++++++++ design-pattern/src/Strategy/Strategy | 30 +++++++++++++++++++ design-pattern/src/Strategy/Sword.java | 8 +++++ design-pattern/src/Strategy/Weapon.java | 6 ++++ 11 files changed, 132 insertions(+), 27 deletions(-) delete mode 100644 codingtest/src/Test.java create mode 100644 design-pattern/src/Strategy/AObj.java create mode 100644 design-pattern/src/Strategy/Ainterface.java create mode 100644 design-pattern/src/Strategy/AinterfaceImpl.java create mode 100644 design-pattern/src/Strategy/Ax.java create mode 100644 design-pattern/src/Strategy/GameCharacter.java create mode 100644 design-pattern/src/Strategy/Gun.java create mode 100644 design-pattern/src/Strategy/Main.java create mode 100644 design-pattern/src/Strategy/Strategy create mode 100644 design-pattern/src/Strategy/Sword.java create mode 100644 design-pattern/src/Strategy/Weapon.java diff --git a/codingtest/src/Test.java b/codingtest/src/Test.java deleted file mode 100644 index 18f3914d..00000000 --- a/codingtest/src/Test.java +++ /dev/null @@ -1,27 +0,0 @@ - - -public class Test { - - public static void main(String[] args) { - System.out.println(solution("ABABAAAAABA")); - } - - public static int solution(String name) { - int len = name.length(); - int move = len-1; - int answer = 0 ; - - for(int i=0; i Weapon interface 생성 + -> Weapon을 상속 받는 Gun, Sword 클래스 생성 + -> GameCharacter 클래스에서 attack 메소드를 사용하기 위해 + Weapon 객체를 호출 하여 사용( attack 메소드 직접 구현 X ) + -> Main 클래스에서 GameCharacter 객체를 생성하고 사용 + +추가사항 + - 무기 도끼 추가 + + -> 다른 코드들을 변경할 필요 없이 + Weapon을 상속받은 Ax클래스만 추가하여 사용가능 해진다. \ No newline at end of file diff --git a/design-pattern/src/Strategy/Sword.java b/design-pattern/src/Strategy/Sword.java new file mode 100644 index 00000000..0d277bdc --- /dev/null +++ b/design-pattern/src/Strategy/Sword.java @@ -0,0 +1,8 @@ +package Strategy; + +public class Sword implements Weapon { + @Override + public void attack() { + System.out.println("검 공격 서걱서걱"); + } +} diff --git a/design-pattern/src/Strategy/Weapon.java b/design-pattern/src/Strategy/Weapon.java new file mode 100644 index 00000000..6061489d --- /dev/null +++ b/design-pattern/src/Strategy/Weapon.java @@ -0,0 +1,6 @@ +package Strategy; + +public interface Weapon { + + void attack(); +}