diff --git a/src/abstractFactory/AbstractFactory.java b/src/abstractFactory/AbstractFactory.java new file mode 100644 index 0000000..905c700 --- /dev/null +++ b/src/abstractFactory/AbstractFactory.java @@ -0,0 +1,7 @@ +package abstractFactory; + +public abstract class AbstractFactory { + abstract Food createFood(); + abstract Vehicles createVehicle(); + abstract Weapon createWeapon(); +} diff --git a/src/abstractFactory/Airship.java b/src/abstractFactory/Airship.java new file mode 100644 index 0000000..45172f4 --- /dev/null +++ b/src/abstractFactory/Airship.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Airship extends Vehicles{ + @Override + void move() { + System.out.println("Alien move with airship, shu shu shu..."); + } +} diff --git a/src/abstractFactory/Ak47.java b/src/abstractFactory/Ak47.java new file mode 100644 index 0000000..1d9e84c --- /dev/null +++ b/src/abstractFactory/Ak47.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Ak47 extends Weapon{ + @Override + void shoot() { + System.out.println("human shoot with bullet, biu biu biu..."); + } +} diff --git a/src/abstractFactory/AlienFactory.java b/src/abstractFactory/AlienFactory.java new file mode 100644 index 0000000..04a076b --- /dev/null +++ b/src/abstractFactory/AlienFactory.java @@ -0,0 +1,18 @@ +package abstractFactory; + +public class AlienFactory extends AbstractFactory{ + @Override + Food createFood() { + return new Mushroom(); + } + + @Override + Vehicles createVehicle() { + return new Airship(); + } + + @Override + Weapon createWeapon() { + return new Thunder(); + } +} diff --git a/src/abstractFactory/Bread.java b/src/abstractFactory/Bread.java new file mode 100644 index 0000000..de0ddc2 --- /dev/null +++ b/src/abstractFactory/Bread.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Bread extends Food{ + @Override + void printName() { + System.out.println("human eat bread"); + } +} diff --git a/src/abstractFactory/Car.java b/src/abstractFactory/Car.java new file mode 100644 index 0000000..ce24fdc --- /dev/null +++ b/src/abstractFactory/Car.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Car extends Vehicles{ + @Override + void move() { + System.out.println("human move with car, tu tu tu..."); + } +} diff --git a/src/abstractFactory/Food.java b/src/abstractFactory/Food.java new file mode 100644 index 0000000..c5bd4c6 --- /dev/null +++ b/src/abstractFactory/Food.java @@ -0,0 +1,5 @@ +package abstractFactory; + +public abstract class Food { + abstract void printName(); +} diff --git a/src/abstractFactory/HumanFactory.java b/src/abstractFactory/HumanFactory.java new file mode 100644 index 0000000..2709ec9 --- /dev/null +++ b/src/abstractFactory/HumanFactory.java @@ -0,0 +1,18 @@ +package abstractFactory; + +public class HumanFactory extends AbstractFactory{ + @Override + Food createFood() { + return new Bread(); + } + + @Override + Vehicles createVehicle() { + return new Car(); + } + + @Override + Weapon createWeapon() { + return new Ak47(); + } +} diff --git a/src/abstractFactory/Main.java b/src/abstractFactory/Main.java new file mode 100644 index 0000000..621be50 --- /dev/null +++ b/src/abstractFactory/Main.java @@ -0,0 +1,13 @@ +package abstractFactory; + +public class Main { + public static void main(String[] args) { + AbstractFactory factory = new HumanFactory(); + Food f = factory.createFood(); + f.printName(); + Vehicles v = factory.createVehicle(); + v.move(); + Weapon w = factory.createWeapon(); + w.shoot(); + } +} diff --git a/src/abstractFactory/Mushroom.java b/src/abstractFactory/Mushroom.java new file mode 100644 index 0000000..ff3eed1 --- /dev/null +++ b/src/abstractFactory/Mushroom.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Mushroom extends Food{ + @Override + void printName() { + System.out.println("alien eat mushroom"); + } +} diff --git a/src/abstractFactory/Thunder.java b/src/abstractFactory/Thunder.java new file mode 100644 index 0000000..5d645ca --- /dev/null +++ b/src/abstractFactory/Thunder.java @@ -0,0 +1,8 @@ +package abstractFactory; + +public class Thunder extends Weapon{ + @Override + void shoot() { + System.out.println("alien shoot with thunder, zi zi zi..."); + } +} diff --git a/src/abstractFactory/Vehicles.java b/src/abstractFactory/Vehicles.java new file mode 100644 index 0000000..e16a479 --- /dev/null +++ b/src/abstractFactory/Vehicles.java @@ -0,0 +1,5 @@ +package abstractFactory; + +public abstract class Vehicles { + abstract void move(); +} diff --git a/src/abstractFactory/Weapon.java b/src/abstractFactory/Weapon.java new file mode 100644 index 0000000..0af47f4 --- /dev/null +++ b/src/abstractFactory/Weapon.java @@ -0,0 +1,5 @@ +package abstractFactory; + +public abstract class Weapon { + abstract void shoot(); +} diff --git a/src/factoryMethod/Car.java b/src/factoryMethod/Car.java index 0024212..a5bfaa9 100644 --- a/src/factoryMethod/Car.java +++ b/src/factoryMethod/Car.java @@ -1,6 +1,6 @@ package factoryMethod; -public class Car implements Vehicle{ +public class Car implements Moveable { @Override public void go() { System.out.println("Car starting... go to park..."); diff --git a/src/factoryMethod/CarFactory.java b/src/factoryMethod/CarFactory.java index 223f30a..ed18f87 100644 --- a/src/factoryMethod/CarFactory.java +++ b/src/factoryMethod/CarFactory.java @@ -1,7 +1,7 @@ package factoryMethod; public class CarFactory { - public Vehicle createCar(){ + public Moveable createCar(){ System.out.println("car created..."); return new Car(); } diff --git a/src/factoryMethod/Vehicle.java b/src/factoryMethod/Moveable.java similarity index 59% rename from src/factoryMethod/Vehicle.java rename to src/factoryMethod/Moveable.java index c1fa792..f5c9433 100644 --- a/src/factoryMethod/Vehicle.java +++ b/src/factoryMethod/Moveable.java @@ -1,5 +1,5 @@ package factoryMethod; -public interface Vehicle { +public interface Moveable { void go(); } diff --git a/src/factoryMethod/Plane.java b/src/factoryMethod/Plane.java index ea10769..4effbf0 100644 --- a/src/factoryMethod/Plane.java +++ b/src/factoryMethod/Plane.java @@ -1,6 +1,6 @@ package factoryMethod; -public class Plane implements Vehicle{ +public class Plane implements Moveable{ @Override public void go() { System.out.println("plant moving.. fly fly fly...");