parent
bbd1a0eb5d
commit
759af1b0c9
@ -0,0 +1,20 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 15:40
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName AK47
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 15:40
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class AK47 extends Weapon {
|
||||
@Override
|
||||
public void shoot() {
|
||||
System.out.println("AK47 shoot……");
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:42
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName AbstractFactory
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:42
|
||||
*@Version 3.0
|
||||
*/
|
||||
public abstract class AbstractFactory {
|
||||
public abstract Food createFood();
|
||||
public abstract Weapon createWeapon();
|
||||
public abstract Vehicle createVehicle();
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 15:41
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Bread
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 15:41
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Bread extends Food {
|
||||
@Override
|
||||
public void printName() {
|
||||
System.out.println("eat bread……");
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 15:39
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Car
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 15:39
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Car extends Vehicle {
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("car go……");
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:43
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Food
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:43
|
||||
*@Version 3.0
|
||||
*/
|
||||
public abstract class Food {
|
||||
public abstract void printName();
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:23
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Main
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:23
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
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,30 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:55
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName ModernFactory
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:55
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class ModernFactory extends AbstractFactory {
|
||||
@Override
|
||||
public Food createFood() {
|
||||
return new Bread();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Weapon createWeapon() {
|
||||
return new AK47();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vehicle createVehicle() {
|
||||
return new Car();
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:44
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Vehicle
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:44
|
||||
*@Version 3.0
|
||||
*/
|
||||
public abstract class Vehicle {
|
||||
public abstract void go();
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.msb.abstractFactory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 16:43
|
||||
* @Description: com.msb.abstractFactory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Weapon
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 16:43
|
||||
*@Version 3.0
|
||||
*/
|
||||
public abstract class Weapon {
|
||||
public abstract void shoot();
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.factory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 14:49
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Car
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 14:49
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Car implements Moveable {
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("car go");
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.factory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 15:08
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName CarFactory
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 15:08
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class CarFactory {
|
||||
public Moveable create() {
|
||||
System.out.println("a car create");
|
||||
return new Car();
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.factory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 14:51
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Main
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 14:51
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
Moveable m = new CarFactory().create(); //or new PlaneFactory().create()
|
||||
m.go();
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.msb.factory;
|
||||
|
||||
/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 14:58
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface Moveable {
|
||||
public void go();
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.msb.factory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 14:49
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Car
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 14:49
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Plane implements Moveable {
|
||||
@Override
|
||||
public void go() {
|
||||
System.out.println("plane fly……");
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.msb.factory;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/8 15:04
|
||||
* @Description: com.msb.factory
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName VehicleFactory
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/8 15:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class SimpleVehicleFactory {
|
||||
|
||||
public Car createCar() {
|
||||
//before processing 例如权限,日志等处理
|
||||
return new Car();
|
||||
}
|
||||
|
||||
public Plane createPlane() {
|
||||
return new Plane();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue