추상적 인 공장 패턴 은 슈퍼 공장 주변에 다른 공장 을 만드는 것입니다. 이 슈퍼 공장은 다른 공장 의 공장 이라고도합니다.
비즈니스 카테고리 :
엔진 :
1. 엔진 :
public abstract class Engine {
public abstract void createEngine();
}
1) BaoMaEngine :
public class BaoMaEngine extends Engine{
@Override
public void createEngine() {
System.out.println("宝马发动机...");
}
}
2) BenChiEngine :
public class BenChiEngine extends Engine{
@Override
public void createEngine() {
System.out.println("奔驰发动机...");
}
}
색상 :
2. 색상 :
public abstract class Colour {
public abstract void createColour();
}
1) 빨간색 :
public class Red extends Colour {
@Override
public void createColour() {
System.out.println("红色喷漆...");
}
}
2) 흑색 :
public class Black extends Colour {
@Override
public void createColour() {
System.out.println("黑色喷漆...");
}
}
공장 등급 :
자동차 공장:
public abstract class CarFactory {
public abstract Engine getEngine();
public abstract Colour getColour();
}
1 、 EngineFactory :
public abstract class EngineFactory extends CarFactory{
public abstract Engine getEngine();
}
1) 바 오마 공장 :
public class BaoMaFactory extends EngineFactory{
@Override
public Engine getEngine() {
return new BaoMaEngine();
}
@Override
public Colour getColour() {
//Do Nothing
//此处为语法要求,没有任何世纪作用
return null;
}
}
2) BenChiFactory :
public class BenChiFactory extends EngineFactory{
@Override
public Engine getEngine() {
return new BenChiEngine();
}
@Override
public Colour getColour() {
//Do Nothing
//此处为语法要求,没有任何世纪作用
return null;
}
}
2, ColourFactory :
public abstract class ColourFactory extends CarFactory{
public abstract Colour getColour();
}
1) 레드 팩토리
public class RedFactory extends ColourFactory{
@Override
public Engine getEngine() {
//Do Nothing
//此处为语法要求,没有任何世纪作用
return null;
}
@Override
public Colour getColour() {
return new Red();
}
}
2) 블랙 팩토리
public class BlackFactory extends ColourFactory{
@Override
public Engine getEngine() {
//Do Nothing
//此处为语法要求,没有任何世纪作用
return null;
}
@Override
public Colour getColour() {
return new Black();
}
}
테스트:
public class Test {
public static void main(String[] args) {
CarFactory carColour=new BlackFactory();
CarFactory carEngine=new BaoMaFactory();
Colour colour=carColour.getColour();
Engine engine=carEngine.getEngine();
colour.createColour();
engine.createEngine();
}
}
작업 결과 :
黑色喷漆...
宝马发动机...