`
baobeituping
  • 浏览: 1068567 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

工厂模式(简单工厂)

阅读更多

简单工厂模式就是一个工厂类根据传入的参量决定创建出哪一种产品类的实例。

简单工厂模式涉及到工厂角色,抽象产品角色以及具体产品角色等三个角色:

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();

 }

}

 

 简单工厂模式的优缺点:

       这个工厂类农夫集中了所有产品的逻辑,形成了一个无所不能的全能类,这个农夫必须对所有的水果负责,如果这个农夫什么时候工作出现了异常,那么整个生产环境都要造成影响。

      将这么多逻辑集中放在一个类里面的另外一个缺点是:当产品类有不同的接口时,农夫将对新的产品进行判断,那么就必须要更改农夫这个类,对于扩展是很不方便的。所以下面介绍工厂方法。

 

分享到:
评论

相关推荐

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    简单工厂模式,工厂方法模式,抽象工厂模式

    本文将深入探讨三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合源码分析其应用场景和优缺点。 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的...

    uml 文档 简单工厂模式

    UML文档-简单工厂模式 简单工厂模式是一种专门负责将大量有共同接口的类实例化的模式,而不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 简单工厂模式的...

    C++ 工厂模式 (简单工厂、工厂和抽象工厂)

    ### C++工厂模式详解:简单工厂、工厂方法与抽象工厂 #### 一、引言 在软件工程领域,设计模式是一种被广泛接受的解决常见问题的解决方案。其中,工厂模式是一种常用的创建型模式,用于封装对象的创建过程,提供一...

    qt工厂模式例子qt简单工程模式源码

    6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // 宝马工厂 class BmwFactory : public AFactory { public: ...

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...

    简单工厂模式、工厂模式、抽象工厂模式案例(C++实现)

    在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。让我们一一探讨这些模式。 1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。...

    工厂模式及其实现

    简单工厂模式是最基础的工厂模式实现,它包含一个静态方法用于创建对象。例如,在汽车制造领域,我们可以创建一个简单工厂类,该类有一个静态方法用于创建不同品牌的汽车对象: ```java public class CarFactory { ...

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    **简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...

    c#工厂模式——简单工厂_抽象工厂实例

    ### C#工厂模式详解——简单工厂与抽象工厂实例解析 #### 一、工厂模式概述 工厂模式是一种常用的设计模式,在面向对象编程中被广泛应用于创建对象。它通过提供一个统一的接口来创建一系列相关的或相互依赖的对象...

    深入浅出设计模式之工厂模式

    简单工厂模式是最基本的形式,它有一个静态方法用来创建对象。但是这种方式违反了开闭原则,当需要添加新产品时,必须修改工厂类。 #### 4.2 工厂方法模式 工厂方法模式定义了一个创建对象的接口,但允许子类决定...

    c#工厂模式——简单工厂,抽象工厂,单件模式实例

    C#中的工厂模式分为简单工厂、抽象工厂和单例模式三种,每一种都有其特定的应用场景和优势。 1. **简单工厂模式**: 简单工厂模式是一种静态工厂方法,它创建一个具体的对象而无需暴露创建逻辑。在C#中,我们可以...

    简单工厂模式uml类图

    java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式

    抽象工厂模式+反射技术(抽象工厂模式+简单工厂模式)

    相比抽象工厂模式,简单工厂模式通常处理的产品种类较少,而且产品之间的关系相对简单。在某些情况下,我们可以将简单工厂作为抽象工厂的一个实现,或者在系统初期使用简单工厂,随着系统复杂性的增加逐步过渡到抽象...

    反射简单工厂模式工厂模式

    本文将深入探讨"反射"以及两种常见的工厂模式:"简单工厂模式"和"工厂方法模式",并结合提供的文件名称来解析这些概念。 首先,我们来看"反射"。在Java等面向对象语言中,反射是一种强大的工具,它允许程序在运行时...

    JAVA简单工厂创立性模式介绍

    总结,简单工厂模式适合简单的对象创建,工厂方法模式则适用于需要根据不同条件创建不同对象的情况,而抽象工厂模式则更适用于需要创建一组相关对象的场景。理解并灵活运用这些模式,能有效提高代码的可维护性和可...

    工厂模式源代码

    这种模式简单易用,但不支持增加新的产品类型,因为静态方法不易扩展。 2. **工厂方法模式**:每个子类都有一个创建产品的方法,工厂类由其子类来决定实例化哪一个产品类。这样增加了系统的灵活性,当添加新产品时...

    软件设计与体系结构-工厂模式实验.doc

    工厂模式有三种:简单工厂模式、工厂方法模式和抽象工厂模式。 二、简单工厂模式 简单工厂模式是最基本的工厂模式,它提供了一种方法来封装对象创建的逻辑。简单工厂模式的核心思想是将对象创建的逻辑封装在一个...

    简单工厂模式_简单工厂模式_

    简单工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这种模式使得代码能够将实例化的责任封装起来,使得客户端代码无需关心具体的对象实现,只需要知道一个公共接口即可...

Global site tag (gtag.js) - Google Analytics