您的位置:首页 > 其它

设计模式之简单工厂模式

2017-10-16 14:54 225 查看
简单工厂模式是工厂模式中的一个分支,是一种创建型模式。

简单工厂模式定义:

定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法(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…怎么办?那就要在我们的工厂(厨房)中加入很多的逻辑,所以说简单工厂模式中工厂类的职责太重,一旦不能工作将影响整个系统,且如果添加过多的产品,工厂类中的逻辑就过于复杂。所以简单工厂模式适用于逻辑简单,且需要创建对象较少的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: