From 84e11201058ea5bdbd0ad8609e74b230ca12a9c3 Mon Sep 17 00:00:00 2001 From: kn5886348135 <56352848+kn5886348135@users.noreply.github.com> Date: Sat, 26 Nov 2022 17:37:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E5=B7=A5=E5=8E=82=E5=92=8C?= =?UTF-8?q?=E5=B7=A5=E5=8E=82=E6=96=B9=E6=B3=95demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tankbattle/abstractfactory/demo/AK47.java | 9 +++++++++ .../abstractfactory/demo/AbstractFactory.java | 7 +++++++ .../abstractfactory/demo/Bread.java | 9 +++++++++ .../abstractfactory/demo/Broom.java | 9 +++++++++ .../tankbattle/abstractfactory/demo/Car.java | 9 +++++++++ .../tankbattle/abstractfactory/demo/Food.java | 6 ++++++ .../abstractfactory/demo/MagicFactory.java | 19 ++++++++++++++++++ .../abstractfactory/demo/MagicStick.java | 9 +++++++++ .../tankbattle/abstractfactory/demo/Main.java | 20 +++++++++++++++++++ .../abstractfactory/demo/ModernFactory.java | 18 +++++++++++++++++ .../abstractfactory/demo/MushRoom.java | 9 +++++++++ .../abstractfactory/demo/Vehicle.java | 5 +++++ .../abstractfactory/demo/VehicleFactory.java | 17 ++++++++++++++++ .../abstractfactory/demo/Weapon.java | 5 +++++ .../tankbattle/factorymethod/Broom.java | 9 +++++++++ .../example/tankbattle/factorymethod/Car.java | 9 +++++++++ .../tankbattle/factorymethod/CarFactory.java | 10 ++++++++++ .../tankbattle/factorymethod/Main.java | 9 +++++++++ .../tankbattle/factorymethod/Moveable.java | 5 +++++ .../tankbattle/factorymethod/Plane.java | 9 +++++++++ .../factorymethod/SimpleVehicleFactory.java | 14 +++++++++++++ 21 files changed, 216 insertions(+) create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/AK47.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/AbstractFactory.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Bread.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Broom.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Car.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Food.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/MagicFactory.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/MagicStick.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Main.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/ModernFactory.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/MushRoom.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Vehicle.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/VehicleFactory.java create mode 100644 src/main/java/com/example/tankbattle/abstractfactory/demo/Weapon.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/Broom.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/Car.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/CarFactory.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/Main.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/Moveable.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/Plane.java create mode 100644 src/main/java/com/example/tankbattle/factorymethod/SimpleVehicleFactory.java diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/AK47.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/AK47.java new file mode 100644 index 0000000..d3329c3 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/AK47.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class AK47 extends Weapon { + + @Override + public void shoot() { + System.out.println("tutututututuututtu"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/AbstractFactory.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/AbstractFactory.java new file mode 100644 index 0000000..878359d --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/AbstractFactory.java @@ -0,0 +1,7 @@ +package com.example.tankbattle.abstractfactory.demo; + +public abstract class AbstractFactory { + abstract Food createFood(); + abstract Vehicle createVehicle(); + abstract Weapon createWeapon(); +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Bread.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Bread.java new file mode 100644 index 0000000..fa8a9c6 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Bread.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class Bread extends Food { + + @Override + public void printName() { + System.out.println("breadbreadbreadbreadbreadbread"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Broom.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Broom.java new file mode 100644 index 0000000..a94ad77 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Broom.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class Broom extends Vehicle { + + @Override + public void go() { + System.out.println("broom flybroom flybroom flybroom flybroom flybroom fly"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Car.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Car.java new file mode 100644 index 0000000..5a4453e --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Car.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class Car extends Vehicle { + + @Override + public void go() { + System.out.println("car move xxxxx"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Food.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Food.java new file mode 100644 index 0000000..43d3b0b --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Food.java @@ -0,0 +1,6 @@ +package com.example.tankbattle.abstractfactory.demo; + +public abstract class Food { + public abstract void printName(); + +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicFactory.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicFactory.java new file mode 100644 index 0000000..6913939 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicFactory.java @@ -0,0 +1,19 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class MagicFactory extends AbstractFactory{ + + @Override + Food createFood() { + return new MushRoom(); + } + + @Override + Vehicle createVehicle() { + return new Broom(); + } + + @Override + Weapon createWeapon() { + return new MagicStick(); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicStick.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicStick.java new file mode 100644 index 0000000..687db8b --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/MagicStick.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class MagicStick extends Weapon { + + @Override + public void shoot() { + System.out.println("magic stickmagic stickmagic stickmagic stickmagic stick"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Main.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Main.java new file mode 100644 index 0000000..dc15dc0 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Main.java @@ -0,0 +1,20 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class Main { + public static void main(String[] args) { + Car car = new Car(); + car.go(); + AK47 aK47 = new AK47(); + aK47.shoot(); + Bread bread = new Bread(); + bread.printName(); + + AbstractFactory factory = new ModernFactory(); + Vehicle vehicle = factory.createVehicle(); + vehicle.go(); + Weapon weapon = factory.createWeapon(); + weapon.shoot(); + Food food = factory.createFood(); + food.printName(); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/ModernFactory.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/ModernFactory.java new file mode 100644 index 0000000..fbe59d7 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/ModernFactory.java @@ -0,0 +1,18 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class ModernFactory extends AbstractFactory{ + @Override + Food createFood() { + return new Bread(); + } + + @Override + Vehicle createVehicle() { + return new Car(); + } + + @Override + Weapon createWeapon() { + return new AK47(); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/MushRoom.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/MushRoom.java new file mode 100644 index 0000000..69fa34c --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/MushRoom.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.abstractfactory.demo; + +public class MushRoom extends Food { + + @Override + public void printName() { + System.out.println("mushRoommushRoommushRoommushRoommushRoommushRoom"); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Vehicle.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Vehicle.java new file mode 100644 index 0000000..ff8cb20 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Vehicle.java @@ -0,0 +1,5 @@ +package com.example.tankbattle.abstractfactory.demo; + +public abstract class Vehicle { + public abstract void go(); +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/VehicleFactory.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/VehicleFactory.java new file mode 100644 index 0000000..0ace7a3 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/VehicleFactory.java @@ -0,0 +1,17 @@ +package com.example.tankbattle.abstractfactory.demo; + +import com.example.tankbattle.factorymethod.Broom; +import com.example.tankbattle.factorymethod.Car; + +public abstract class VehicleFactory { + + public Car createCar(){ + // pre-process + return new Car(); + } + + public Broom createBroom(){ + // pre-process + return new Broom(); + } +} diff --git a/src/main/java/com/example/tankbattle/abstractfactory/demo/Weapon.java b/src/main/java/com/example/tankbattle/abstractfactory/demo/Weapon.java new file mode 100644 index 0000000..5c93d25 --- /dev/null +++ b/src/main/java/com/example/tankbattle/abstractfactory/demo/Weapon.java @@ -0,0 +1,5 @@ +package com.example.tankbattle.abstractfactory.demo; + +public abstract class Weapon { + public abstract void shoot(); +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/Broom.java b/src/main/java/com/example/tankbattle/factorymethod/Broom.java new file mode 100644 index 0000000..2ff8529 --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/Broom.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.factorymethod; + +public class Broom implements Moveable{ + + @Override + public void go() { + System.out.println("broom fly xxxxxxxx"); + } +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/Car.java b/src/main/java/com/example/tankbattle/factorymethod/Car.java new file mode 100644 index 0000000..33bf674 --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/Car.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.factorymethod; + +public class Car implements Moveable { + + @Override + public void go() { + System.out.println("car move xxxxx"); + } +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/CarFactory.java b/src/main/java/com/example/tankbattle/factorymethod/CarFactory.java new file mode 100644 index 0000000..7edc500 --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/CarFactory.java @@ -0,0 +1,10 @@ +package com.example.tankbattle.factorymethod; + +public class CarFactory { + public Car create() { + // log + System.out.println("xxxxxxxxxxx"); + return new Car(); + } + +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/Main.java b/src/main/java/com/example/tankbattle/factorymethod/Main.java new file mode 100644 index 0000000..851f086 --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/Main.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.factorymethod; + +public class Main { + public static void main(String[] args) { + Moveable moveable = new CarFactory().create(); + moveable.go(); + + } +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/Moveable.java b/src/main/java/com/example/tankbattle/factorymethod/Moveable.java new file mode 100644 index 0000000..8d52789 --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/Moveable.java @@ -0,0 +1,5 @@ +package com.example.tankbattle.factorymethod; + +public interface Moveable { + void go(); +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/Plane.java b/src/main/java/com/example/tankbattle/factorymethod/Plane.java new file mode 100644 index 0000000..2092a6d --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/Plane.java @@ -0,0 +1,9 @@ +package com.example.tankbattle.factorymethod; + +public class Plane implements Moveable { + + @Override + public void go() { + System.out.println("plane go xxxx"); + } +} diff --git a/src/main/java/com/example/tankbattle/factorymethod/SimpleVehicleFactory.java b/src/main/java/com/example/tankbattle/factorymethod/SimpleVehicleFactory.java new file mode 100644 index 0000000..226ab3a --- /dev/null +++ b/src/main/java/com/example/tankbattle/factorymethod/SimpleVehicleFactory.java @@ -0,0 +1,14 @@ +package com.example.tankbattle.factorymethod; + +public class SimpleVehicleFactory { + + public Car createCar() { + // pre-process + return new Car(); + } + + public Broom createBroom() { + // pre-process + return new Broom(); + } +}