【設計模式】(七)–創建型模式–工廠模式3抽象工廠模式
抽象工廠模式簡單實現
類圖
實現
public interface Fruit {
void showTaste();
}
public interface Apple extends Fruit{
}
public interface Orange extends Fruit {
}
public class AppleJuice implements Apple {
@Override
public void showTaste() {
System.out.println("蘋果汁酸甜可口");
}
public AppleJuice() {
this.showTaste();
}
}
public class OrangeJuice implements Orange {
@Override
public void showTaste() {
System.out.println("橙汁酸甜可口");
}
public OrangeJuice() {
this.showTaste();
}
}
public class DriedApple implements Apple{
@Override
public void showTaste() {
System.out.println("蘋果乾爽脆");
}
public DriedApple() {
this.showTaste();
}
}
public class DriedOrange implements Orange {
@Override
public void showTaste() {
System.out.println("橙子乾爽酸爽");
}
public DriedOrange() {
this.showTaste();
}
}
public interface FruitFactory {
Fruit createApple();
Fruit createOrange();
}
public class DriedFruitFactoryImpl implements FruitFactory {
@Override
public Fruit createApple() {
return new DriedApple();
}
@Override
public Fruit createOrange() {
return new DriedOrange();
}
}
public class FruitJuiceFactoryImpl implements FruitFactory {
@Override
public Fruit createApple() {
return new AppleJuice();
}
@Override
public Fruit createOrange() {
return new OrangeJuice();
}
}
public class Client {
public static void main(String[] args) {
FruitFactory driedFruitFactory = new DriedFruitFactoryImpl();
FruitFactory juiceFactory = new FruitJuiceFactoryImpl();
Fruit driedApple = driedFruitFactory.createApple();
Fruit driedOrange = driedFruitFactory.createOrange();
Fruit appleJuice = juiceFactory.createApple();
Fruit orangeJuice = juiceFactory.createOrange();
}
}
效果如下