Files
qingcheng-houduan/src/test/java/com/greenorange/promotion/FactoryDemo.java

60 lines
1.0 KiB
Java
Raw Normal View History

2025-04-30 10:18:18 +08:00
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();
}
}