设计模式之简单工厂模式
2017-10-16 14:54
225 查看
简单工厂模式是工厂模式中的一个分支,是一种创建型模式。
简单工厂模式定义:
定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。
我们来简单说说什么叫简单工厂模式:
假设你不想做饭想去餐馆吃饭,你想吃鱼,你的女朋友想吃肉(前提是你得有个女朋友),但是你自己并不能够自己做菜,只能下单让厨师为你做。所以,你的鱼“对象”和肉“对象”就交由厨房来创建,这里的厨房就是一个工厂。下面我们来看一个简单的栗子:
就这样,你和你的女朋友就吃上了一顿丰盛的大餐。
但是,如果你和一大堆朋友去吃饭呢?A想吃鱼,B想吃肉,C想吃虾,D…怎么办?那就要在我们的工厂(厨房)中加入很多的逻辑,所以说简单工厂模式中工厂类的职责太重,一旦不能工作将影响整个系统,且如果添加过多的产品,工厂类中的逻辑就过于复杂。所以简单工厂模式适用于逻辑简单,且需要创建对象较少的情况。
简单工厂模式定义:
定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。
我们来简单说说什么叫简单工厂模式:
假设你不想做饭想去餐馆吃饭,你想吃鱼,你的女朋友想吃肉(前提是你得有个女朋友),但是你自己并不能够自己做菜,只能下单让厨师为你做。所以,你的鱼“对象”和肉“对象”就交由厨房来创建,这里的厨房就是一个工厂。下面我们来看一个简单的栗子:
package SimpleFactory; //食物接口 public interface Food { void make(); } package SimpleFactory; //鱼 public class Fish implements Food{ public void make() { System.out.println("做了一道红烧鱼"); } } package SimpleFactory; //肉 public class Meat implements Food{ public void make() { System.out.println("做了一道鱼香肉丝"); } } package SimpleFactory; //食物工厂 public class FoodFactory { public static Food getFood(String type) { if(type.equalsIgnoreCase("Fish")) { return new Fish(); }else if(type.equalsIgnoreCase("Meat")) { return new Meat(); }else return null; } } package SimpleFactory; //test public class test { public static void main(String[] args) { Food F=FoodFactory.getFood("Fish"); F.make(); Food M=FoodFactory.getFood("Meat"); M.make(); } } 运行结果: 做了一道红烧鱼 做了一道鱼香肉丝
就这样,你和你的女朋友就吃上了一顿丰盛的大餐。
但是,如果你和一大堆朋友去吃饭呢?A想吃鱼,B想吃肉,C想吃虾,D…怎么办?那就要在我们的工厂(厨房)中加入很多的逻辑,所以说简单工厂模式中工厂类的职责太重,一旦不能工作将影响整个系统,且如果添加过多的产品,工厂类中的逻辑就过于复杂。所以简单工厂模式适用于逻辑简单,且需要创建对象较少的情况。
相关文章推荐
- 设计模式1:简单工厂模式【创建型】
- 玩转简单工厂设计模式
- 设计模式之简单工厂模式加反射
- 设计模式之--简单工厂模式
- 设计模式心得笔记--简单工厂和策略模式
- 设计模式之简单工厂模式
- [设计模式]之一:简单工厂模式
- 简单工厂设计模式(Simple Factory Design Pattern)
- 简单工厂设计模式
- 设计模式-----简单工厂
- 工厂设计模式的简单理解
- 设计模式一:简单工厂模式
- 工厂设计模式(一)--简单工厂模式
- 设计模式之简单工厂模式
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 【设计模式基础】创建型模式 - 3 - 简单工厂(Simple Factory)
- 设计模式-1 简单工厂设计模式
- 设计模式之简单工厂模式
- 设计模式之简单工厂模式
- 设计模式(1)の创建型の工厂方法模式(Factory Method)の(普通|简单)工厂模式