parent
6ad8fb6d0a
commit
84e1120105
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public class AK47 extends Weapon {
|
||||
|
||||
@Override
|
||||
public void shoot() {
|
||||
System.out.println("tutututututuututtu");
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public abstract class AbstractFactory {
|
||||
abstract Food createFood();
|
||||
abstract Vehicle createVehicle();
|
||||
abstract Weapon createWeapon();
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public class Bread extends Food {
|
||||
|
||||
@Override
|
||||
public void printName() {
|
||||
System.out.println("breadbreadbreadbreadbreadbread");
|
||||
}
|
||||
}
|
@ -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");
|
||||
}
|
||||
}
|
@ -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");
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public abstract class Food {
|
||||
public abstract void printName();
|
||||
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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");
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public class MushRoom extends Food {
|
||||
|
||||
@Override
|
||||
public void printName() {
|
||||
System.out.println("mushRoommushRoommushRoommushRoommushRoommushRoom");
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public abstract class Vehicle {
|
||||
public abstract void go();
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.example.tankbattle.abstractfactory.demo;
|
||||
|
||||
public abstract class Weapon {
|
||||
public abstract void shoot();
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.factorymethod;
|
||||
|
||||
public class Broom implements Moveable{
|
||||
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("broom fly xxxxxxxx");
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.factorymethod;
|
||||
|
||||
public class Car implements Moveable {
|
||||
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("car move xxxxx");
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.example.tankbattle.factorymethod;
|
||||
|
||||
public class CarFactory {
|
||||
public Car create() {
|
||||
// log
|
||||
System.out.println("xxxxxxxxxxx");
|
||||
return new Car();
|
||||
}
|
||||
|
||||
}
|
@ -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();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.example.tankbattle.factorymethod;
|
||||
|
||||
public interface Moveable {
|
||||
void go();
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.example.tankbattle.factorymethod;
|
||||
|
||||
public class Plane implements Moveable {
|
||||
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("plane go xxxx");
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue