From 9a326153d25605b5bcae800ee046b335c6898b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=AA=E5=9B=BD=E6=A0=8B?= Date: Wed, 21 Sep 2022 11:28:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AD=96=E7=95=A5=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design-patterns/pom.xml | 19 ++++++++++ .../src/main/java/com/perye/Main.java | 8 +++++ .../com/perye/strategy/duck/DuckMain.java | 16 +++++++++ .../duck/behavior/fly/FlyBehavior.java | 10 ++++++ .../strategy/duck/behavior/fly/FlyNoWay.java | 8 +++++ .../duck/behavior/fly/FlyRocketPowered.java | 9 +++++ .../duck/behavior/fly/FlyWithWings.java | 8 +++++ .../duck/behavior/quack/MuteQuack.java | 8 +++++ .../strategy/duck/behavior/quack/Quack.java | 8 +++++ .../duck/behavior/quack/QuackBehavior.java | 10 ++++++ .../strategy/duck/behavior/quack/Squeak.java | 8 +++++ .../perye/strategy/duck/entity/DecoyDuck.java | 17 +++++++++ .../com/perye/strategy/duck/entity/Duck.java | 36 +++++++++++++++++++ .../strategy/duck/entity/MallardDuck.java | 17 +++++++++ .../perye/strategy/duck/entity/ModelDuck.java | 17 +++++++++ .../strategy/duck/entity/RedheadDuck.java | 17 +++++++++ .../strategy/duck/entity/RubberDuck.java | 17 +++++++++ .../com/perye/strategy/weapon/WeaponMain.java | 18 ++++++++++ .../strategy/weapon/behavior/AxeBehavior.java | 8 +++++ .../weapon/behavior/BowAndArrowBehavior.java | 8 +++++ .../weapon/behavior/KnifeBehavior.java | 8 +++++ .../weapon/behavior/SwordBehavior.java | 8 +++++ .../weapon/behavior/WeaponBehavior.java | 7 ++++ .../strategy/weapon/entity/Character.java | 18 ++++++++++ .../perye/strategy/weapon/entity/King.java | 8 +++++ .../perye/strategy/weapon/entity/Knight.java | 8 +++++ .../perye/strategy/weapon/entity/Queen.java | 9 +++++ .../perye/strategy/weapon/entity/Troll.java | 8 +++++ pom.xml | 1 + 29 files changed, 342 insertions(+) create mode 100644 design-patterns/pom.xml create mode 100644 design-patterns/src/main/java/com/perye/Main.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java create mode 100644 design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java diff --git a/design-patterns/pom.xml b/design-patterns/pom.xml new file mode 100644 index 0000000..c462613 --- /dev/null +++ b/design-patterns/pom.xml @@ -0,0 +1,19 @@ + + + + code + com.perye + 1.0-SNAPSHOT + + 4.0.0 + + design-patterns + + + 8 + 8 + + + \ No newline at end of file diff --git a/design-patterns/src/main/java/com/perye/Main.java b/design-patterns/src/main/java/com/perye/Main.java new file mode 100644 index 0000000..bdc0b5d --- /dev/null +++ b/design-patterns/src/main/java/com/perye/Main.java @@ -0,0 +1,8 @@ +package com.perye; + +public class Main { + + public static void main(String[] args) { + System.out.println("策略模式"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java b/design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java new file mode 100644 index 0000000..88241c9 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java @@ -0,0 +1,16 @@ +package com.perye.strategy.duck; + +import com.perye.strategy.duck.behavior.fly.FlyRocketPowered; +import com.perye.strategy.duck.entity.Duck; +import com.perye.strategy.duck.entity.MallardDuck; + +public class DuckMain { + + public static void main(String[] args) { + Duck duck = new MallardDuck(); + duck.setFlyBehavior(new FlyRocketPowered()); + duck.display(); + duck.performFly(); + duck.performQuack(); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java new file mode 100644 index 0000000..b30711d --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java @@ -0,0 +1,10 @@ +package com.perye.strategy.duck.behavior.fly; + +/** + * 飞行 + */ +public interface FlyBehavior { + + void fly(); + +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java new file mode 100644 index 0000000..2e91962 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java @@ -0,0 +1,8 @@ +package com.perye.strategy.duck.behavior.fly; + +public class FlyNoWay implements FlyBehavior { + @Override + public void fly() { + System.out.println("什么都不做,不会飞"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java new file mode 100644 index 0000000..53ec6c9 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java @@ -0,0 +1,9 @@ +package com.perye.strategy.duck.behavior.fly; + +public class FlyRocketPowered implements FlyBehavior { + + @Override + public void fly() { + System.out.println("FlyRocketPowered"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java new file mode 100644 index 0000000..6f04148 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java @@ -0,0 +1,8 @@ +package com.perye.strategy.duck.behavior.fly; + +public class FlyWithWings implements FlyBehavior { + @Override + public void fly() { + System.out.println("实现鸭子飞行"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java new file mode 100644 index 0000000..cc8e2a7 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java @@ -0,0 +1,8 @@ +package com.perye.strategy.duck.behavior.quack; + +public class MuteQuack implements QuackBehavior { + @Override + public void quack() { + System.out.println("什么都不做,不会叫"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java new file mode 100644 index 0000000..2502767 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java @@ -0,0 +1,8 @@ +package com.perye.strategy.duck.behavior.quack; + +public class Quack implements QuackBehavior { + @Override + public void quack() { + System.out.println("实现鸭子呱呱叫"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java new file mode 100644 index 0000000..955532e --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java @@ -0,0 +1,10 @@ +package com.perye.strategy.duck.behavior.quack; + +/** + * 叫声 + */ +public interface QuackBehavior { + + void quack(); + +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java new file mode 100644 index 0000000..50c6958 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java @@ -0,0 +1,8 @@ +package com.perye.strategy.duck.behavior.quack; + +public class Squeak implements QuackBehavior { + @Override + public void quack() { + System.out.println("橡皮鸭子吱吱叫"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java new file mode 100644 index 0000000..ec2bdc2 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java @@ -0,0 +1,17 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyNoWay; +import com.perye.strategy.duck.behavior.quack.MuteQuack; + +public class DecoyDuck extends Duck { + + public DecoyDuck() { + quackBehavior = new MuteQuack(); + flyBehavior = new FlyNoWay(); + } + + @Override + public void display() { + System.out.println("display--DecoyDuck"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java new file mode 100644 index 0000000..7ebc4e8 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java @@ -0,0 +1,36 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyBehavior; +import com.perye.strategy.duck.behavior.quack.QuackBehavior; + +/** + * 鸭子超类 + */ +public abstract class Duck { + + FlyBehavior flyBehavior; + + QuackBehavior quackBehavior; + + public void performQuack() { + quackBehavior.quack(); + } + + public void performFly() { + flyBehavior.fly(); + } + + public void swim() { + System.out.println("swim"); + } + + public abstract void display(); + + public void setFlyBehavior(FlyBehavior flyBehavior) { + this.flyBehavior = flyBehavior; + } + + public void setQuackBehavior(QuackBehavior quackBehavior) { + this.quackBehavior = quackBehavior; + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java new file mode 100644 index 0000000..8950175 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java @@ -0,0 +1,17 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyWithWings; +import com.perye.strategy.duck.behavior.quack.Quack; + +public class MallardDuck extends Duck { + + public MallardDuck() { + quackBehavior = new Quack(); + flyBehavior = new FlyWithWings(); + } + + @Override + public void display() { + System.out.println("display--MallardDuck"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java new file mode 100644 index 0000000..e1b1927 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java @@ -0,0 +1,17 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyNoWay; +import com.perye.strategy.duck.behavior.quack.Quack; + +public class ModelDuck extends Duck { + + public ModelDuck() { + flyBehavior = new FlyNoWay(); + quackBehavior = new Quack(); + } + + @Override + public void display() { + System.out.println("display--ModelDuck"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java new file mode 100644 index 0000000..f9fe2a1 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java @@ -0,0 +1,17 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyWithWings; +import com.perye.strategy.duck.behavior.quack.Quack; + +public class RedheadDuck extends Duck { + + public RedheadDuck() { + quackBehavior = new Quack(); + flyBehavior = new FlyWithWings(); + } + + @Override + public void display() { + System.out.println("display--RedheadDuck"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java b/design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java new file mode 100644 index 0000000..1bad2e2 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java @@ -0,0 +1,17 @@ +package com.perye.strategy.duck.entity; + +import com.perye.strategy.duck.behavior.fly.FlyWithWings; +import com.perye.strategy.duck.behavior.quack.Squeak; + +public class RubberDuck extends Duck { + + public RubberDuck() { + quackBehavior = new Squeak(); + flyBehavior = new FlyWithWings(); + } + + @Override + public void display() { + System.out.println("display--RubberDuck"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java b/design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java new file mode 100644 index 0000000..c22fb3a --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java @@ -0,0 +1,18 @@ +package com.perye.strategy.weapon; + +import com.perye.strategy.weapon.behavior.AxeBehavior; +import com.perye.strategy.weapon.behavior.BowAndArrowBehavior; +import com.perye.strategy.weapon.entity.Character; +import com.perye.strategy.weapon.entity.King; + +public class WeaponMain { + + public static void main(String[] args) { + Character character = new King(); + character.fight(); + character.setWeaponBehavior(new AxeBehavior()); + character.performFight(); + character.setWeaponBehavior(new BowAndArrowBehavior()); + character.performFight(); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java new file mode 100644 index 0000000..feb369a --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.behavior; + +public class AxeBehavior implements WeaponBehavior{ + @Override + public void useWeapon() { + System.out.println("用斧头"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java new file mode 100644 index 0000000..83a59fb --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.behavior; + +public class BowAndArrowBehavior implements WeaponBehavior{ + @Override + public void useWeapon() { + System.out.println("弓箭射击"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java new file mode 100644 index 0000000..a3c6826 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.behavior; + +public class KnifeBehavior implements WeaponBehavior{ + @Override + public void useWeapon() { + System.out.println("匕首"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java new file mode 100644 index 0000000..c464d96 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.behavior; + +public class SwordBehavior implements WeaponBehavior{ + @Override + public void useWeapon() { + System.out.println("用剑"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java new file mode 100644 index 0000000..fbc4210 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java @@ -0,0 +1,7 @@ +package com.perye.strategy.weapon.behavior; + +public interface WeaponBehavior { + + void useWeapon(); + +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java new file mode 100644 index 0000000..6eeec80 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java @@ -0,0 +1,18 @@ +package com.perye.strategy.weapon.entity; + +import com.perye.strategy.weapon.behavior.WeaponBehavior; + +public abstract class Character { + + WeaponBehavior weaponBehavior; + + public abstract void fight(); + + public void performFight(){ + weaponBehavior.useWeapon(); + } + + public void setWeaponBehavior(WeaponBehavior weaponBehavior) { + this.weaponBehavior = weaponBehavior; + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java new file mode 100644 index 0000000..eb4d9a0 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.entity; + +public class King extends Character{ + @Override + public void fight() { + System.out.println("king"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java new file mode 100644 index 0000000..b6a928c --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.entity; + +public class Knight extends Character{ + @Override + public void fight() { + System.out.println("Knight"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java new file mode 100644 index 0000000..ee6d5ed --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java @@ -0,0 +1,9 @@ +package com.perye.strategy.weapon.entity; + +public class Queen extends Character { + + @Override + public void fight() { + System.out.println("Queen"); + } +} diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java new file mode 100644 index 0000000..cbd5d75 --- /dev/null +++ b/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java @@ -0,0 +1,8 @@ +package com.perye.strategy.weapon.entity; + +public class Troll extends Character{ + @Override + public void fight() { + System.out.println("Troll"); + } +} diff --git a/pom.xml b/pom.xml index bad9a45..eeb5c57 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ demo core leetcode + design-patterns From d861623c9bc2d7f98d0b25dbb374637bef6f7730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=AA=E5=9B=BD=E6=A0=8B?= Date: Wed, 21 Sep 2022 16:37:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AD=96=E7=95=A5=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design-patterns/pom.xml | 4 ++++ design-patterns/strategy/pom.xml | 19 +++++++++++++++++++ .../src/main/java/com/perye/Main.java | 0 .../com/perye/strategy/duck/DuckMain.java | 0 .../duck/behavior/fly/FlyBehavior.java | 0 .../strategy/duck/behavior/fly/FlyNoWay.java | 0 .../duck/behavior/fly/FlyRocketPowered.java | 0 .../duck/behavior/fly/FlyWithWings.java | 0 .../duck/behavior/quack/MuteQuack.java | 0 .../strategy/duck/behavior/quack/Quack.java | 0 .../duck/behavior/quack/QuackBehavior.java | 0 .../strategy/duck/behavior/quack/Squeak.java | 0 .../perye/strategy/duck/entity/DecoyDuck.java | 0 .../com/perye/strategy/duck/entity/Duck.java | 0 .../strategy/duck/entity/MallardDuck.java | 0 .../perye/strategy/duck/entity/ModelDuck.java | 0 .../strategy/duck/entity/RedheadDuck.java | 0 .../strategy/duck/entity/RubberDuck.java | 0 .../com/perye/strategy/weapon/WeaponMain.java | 0 .../strategy/weapon/behavior/AxeBehavior.java | 0 .../weapon/behavior/BowAndArrowBehavior.java | 0 .../weapon/behavior/KnifeBehavior.java | 0 .../weapon/behavior/SwordBehavior.java | 0 .../weapon/behavior/WeaponBehavior.java | 0 .../strategy/weapon/entity/Character.java | 0 .../perye/strategy/weapon/entity/King.java | 0 .../perye/strategy/weapon/entity/Knight.java | 0 .../perye/strategy/weapon/entity/Queen.java | 0 .../perye/strategy/weapon/entity/Troll.java | 0 29 files changed, 23 insertions(+) create mode 100644 design-patterns/strategy/pom.xml rename design-patterns/{ => strategy}/src/main/java/com/perye/Main.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/DuckMain.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/Duck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/WeaponMain.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/entity/Character.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/entity/King.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/entity/Knight.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/entity/Queen.java (100%) rename design-patterns/{ => strategy}/src/main/java/com/perye/strategy/weapon/entity/Troll.java (100%) diff --git a/design-patterns/pom.xml b/design-patterns/pom.xml index c462613..5b8f4dd 100644 --- a/design-patterns/pom.xml +++ b/design-patterns/pom.xml @@ -10,6 +10,10 @@ 4.0.0 design-patterns + pom + + strategy + 8 diff --git a/design-patterns/strategy/pom.xml b/design-patterns/strategy/pom.xml new file mode 100644 index 0000000..a4b2c76 --- /dev/null +++ b/design-patterns/strategy/pom.xml @@ -0,0 +1,19 @@ + + + + design-patterns + com.perye + 1.0-SNAPSHOT + + 4.0.0 + + strategy + + + 8 + 8 + + + \ No newline at end of file diff --git a/design-patterns/src/main/java/com/perye/Main.java b/design-patterns/strategy/src/main/java/com/perye/Main.java similarity index 100% rename from design-patterns/src/main/java/com/perye/Main.java rename to design-patterns/strategy/src/main/java/com/perye/Main.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/DuckMain.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/DuckMain.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/DuckMain.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyNoWay.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyRocketPowered.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/fly/FlyWithWings.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/MuteQuack.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/Quack.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/QuackBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/behavior/quack/Squeak.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/DecoyDuck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/Duck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/Duck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/Duck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/MallardDuck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/ModelDuck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/RedheadDuck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java b/design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/duck/entity/RubberDuck.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/WeaponMain.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/WeaponMain.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/WeaponMain.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/AxeBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/BowAndArrowBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/KnifeBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/SwordBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/behavior/WeaponBehavior.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Character.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/entity/Character.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Character.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/King.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/entity/King.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/King.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Knight.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/entity/Knight.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Knight.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Queen.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/entity/Queen.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Queen.java diff --git a/design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java b/design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Troll.java similarity index 100% rename from design-patterns/src/main/java/com/perye/strategy/weapon/entity/Troll.java rename to design-patterns/strategy/src/main/java/com/perye/strategy/weapon/entity/Troll.java