简单工厂模式就是一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
简单工厂模式涉及到工厂角色,抽象产品角色以及具体产品角色等三个角色:
1。工厂类角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,他往往由一个具体的JAVA类实现。
2。抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们共同拥有的接口。抽象产品角色可以用一个JAVA接口或JAVA抽象实现。
3。具体产品角色:工厂方法模式所创建的任何对象都是这个角色的实例。
代码:产品接口类(水果)
package 工厂模式.简单工厂模式;
public interface Fruit {
void grow();
void harvest();
void plant();
}
产品类:
Apple:(苹果)
package 工厂模式.简单工厂模式;
public class Apple implements Fruit {
public void grow() {
System.out.println("apple grow");
}
public void harvest() {
System.out.println("apple harvest");
}
public void plant() {
System.out.println("apple plant");
}
}
Banana:(香蕉)
package 工厂模式.简单工厂模式;
public class Banana implements Fruit {
public void grow() {
System.out.println("Banana grow");
}
public void harvest() {
System.out.println("Banana harvest");
}
public void plant() {
System.out.println("Banana plant");
}
}
工厂类:(农夫)
package 工厂模式.简单工厂模式;
public class FruitGardener {
public static Fruit factory(String fruit)
{
if("apple".equals(fruit))
{
return new Apple();
}
if("banana".equals(fruit))
{
return new Banana();
}
else
{
return null;
}
}
}
客户端:
package 工厂模式.简单工厂模式;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
Apple apple = (Apple) FruitGardener.factory("apple");
apple.plant();
}
}
简单工厂模式的优缺点:
这个工厂类农夫集中了所有产品的逻辑,形成了一个无所不能的全能类,这个农夫必须对所有的水果负责,如果这个农夫什么时候工作出现了异常,那么整个生产环境都要造成影响。
将这么多逻辑集中放在一个类里面的另外一个缺点是:当产品类有不同的接口时,农夫将对新的产品进行判断,那么就必须要更改农夫这个类,对于扩展是很不方便的。所以下面介绍工厂方法。
分享到:
相关推荐
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
本文章通俗易懂的对工厂模式进行了讲解,相信您看完这篇文章会对工厂模式有更深入的了解
c#工厂模式 简单工厂,抽象工厂,单件模式
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // 宝马工厂 class BmwFactory : public AFactory { public: ...
工厂模式有三种:简单工厂模式、工厂方法模式和抽象工厂模式。 二、简单工厂模式 简单工厂模式是最基本的工厂模式,它提供了一种方法来封装对象创建的逻辑。简单工厂模式的核心思想是将对象创建的逻辑封装在一个...
运用两个典型案例,实现软件设计模式的简单工厂模式,从该案例中,可以体会简单工厂模式的特点
通过C++实现了简单工厂模式、工厂模式、抽象工厂模式三大设计模式的经典案例。
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
反射例子代码、简单工厂模式例子代码、工厂模式例子代码
设计模式 简单工厂模式 简易计算器代码 设计模式 面向对象 计算器 java
工厂方法模式和抽象工厂模式的区别,对工厂方法模式和抽象工厂模式做了简单的比较
java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。...
C++ 工厂模式 (简单工厂、工厂和抽象工厂)
它可以分为简单工厂模式、工厂模式以及抽象工厂模式。以下是对工厂模式的详细介绍: 简单工厂模式 简单工厂模式是一种最基本的工厂模式,它的主要作用是根据不同的参数选择不同的解析器。例如,在数据解析器中,...
设计模式之简单工厂模式案例
简单工厂模式,简单工厂模式课件,简单工厂模式PPT
整理的四种工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式、反射工厂模式,以及与没用工厂模式的比较。博客地址 http://blog.csdn.net/pfe_nova
设计模式课程资料——简单工厂模式,使用Java实现,在eclipse进行编译