参数校验
This commit is contained in:
59
src/test/java/com/greenorange/promotion/FactoryDemo.java
Normal file
59
src/test/java/com/greenorange/promotion/FactoryDemo.java
Normal file
@ -0,0 +1,59 @@
|
||||
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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user