工厂方法模式

发布 : 2018-11-21 分类 : 设计模式 浏览 :

简介

  • 不同的

    结构

  • 抽象工厂
  • 具体工厂
  • 抽象产品
  • 具体产品

工厂方法模式

Demo

抽象工厂
public interface FoodFactory {
Food produceFood();
}
具体工厂

具体工厂用来实现抽象工厂, 并且实现其方法, 获取抽象产品

public class BreadFoodFactory implements FoodFactory {
@Override
public Food produceFood() {
return new BreadFood();
}
}

public class MilkFoodFactory implements FoodFactory {
@Override
public Food produceFood() {
return new MilkFood();
}
}
抽象产品
public abstract class Food {
abstract void foodName();
}
具体产品

实现抽象产品和抽象方法

public class BreadFood extends Food {
@Override
void foodName() {
System.out.println("这是面包");
}
}

public class MilkFood extends Food {
@Override
void foodName() {
System.out.println("这是牛奶");
}
}
Test

通过多态构建不同的工厂, 然后通过不同工厂制造不用的产品.

public class FactoryMethodTest {

public static void main(String[] args) {

FoodFactory milkFoodFactory = new MilkFoodFactory();
Food food = milkFoodFactory.produceFood();
food.foodName();

FoodFactory breadFoodFactory = new BreadFoodFactory();
Food food1 = breadFoodFactory.produceFood();
food1.foodName();
}
}

总结

  • 所有扩展只需要实现工厂和抽象产品即可

本文作者 : liuzhihang
原文链接 : https://liuzhihang.com/2018/11/21/factory-method-mode.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

博客已萌萌哒运行(●'◡'●)ノ♥
Theme - BMW | Made With 💗 | Powered by GodBMW