60 lines
1.0 KiB
Java
60 lines
1.0 KiB
Java
|
package com.greenorange.promotion;
|
||
|
|
||
|
import org.junit.jupiter.api.Test;
|
||
|
|
||
|
public class FactoryDemo {
|
||
|
|
||
|
@Test
|
||
|
public void ClientTest() {
|
||
|
CarFactory bmwFactory = new BMWFactory();
|
||
|
Car bmw = bmwFactory.createCar();
|
||
|
bmw.drive(); // 输出: Driving a BMW car
|
||
|
|
||
|
CarFactory benzFactory = new BenzFactory();
|
||
|
Car benz = benzFactory.createCar();
|
||
|
benz.drive(); // 输出: Driving a Benz car
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
interface Car {
|
||
|
void drive();
|
||
|
}
|
||
|
|
||
|
class BMWCar implements Car {
|
||
|
@Override
|
||
|
public void drive() {
|
||
|
System.out.println("Driving a BMW car");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class BenzCar implements Car {
|
||
|
@Override
|
||
|
public void drive() {
|
||
|
System.out.println("Driving a Benz car");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
interface CarFactory {
|
||
|
Car createCar();
|
||
|
}
|
||
|
|
||
|
|
||
|
class BMWFactory implements CarFactory {
|
||
|
@Override
|
||
|
public Car createCar() {
|
||
|
return new BMWCar();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class BenzFactory implements CarFactory {
|
||
|
@Override
|
||
|
public Car createCar() {
|
||
|
return new BenzCar();
|
||
|
}
|
||
|
}
|