`
longzhun
  • 浏览: 369929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java设计模式之工厂模式(三种)

 
阅读更多

工厂模式 

1. 简单工厂 

理解 

简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。 
不修改代码的话,是无法扩展的。 
例子 

产品接口 

//产品接口 
public interface ProductI { 
  public void productName(); 

产品实体类 

public class ProductA implements ProductI { 
  @Override 
  public void productName() { 
      System.out.println("product A"); 
  } 

public class ProductB implements ProductI { 
  @Override 
  public void productName() { 
      System.out.println("product B"); 
  } 

工厂类 

// 简单工厂模式 
public class Factory { 
  public ProductI create(String productName) { 
      switch (productName) { 
          case "A": 
              return new ProductA(); 
          case "B": 
              return new ProductB(); 
          default: 
              return null; 
      } 
  } 

测试类 

public class Client { 
  public static void main(String[] args) { 
      Factory factory = new Factory(); 
      ProductI productA = factory.create("A"); 
      productA.productName(); 
      // 
      ProductI productB = factory.create("B"); 
      productB.productName(); 
  } 

输出 

product A 

product B 

工厂方法 
理解 

工厂方法是针 对每一种产品提供一个工厂类 。通过不同的工厂实例来创建不同的产品实例。 
在同一等级结构中, 支持增加任意产品 。 
例子 

产品接口和产品实体类和简单工厂都一样。 

工厂接口 

public interface FactoryI { 
  // 工厂的目的是为了生产产品 
  public ProductI create(); 

工厂实体类 

public class FactoryA implements FactoryI { 
  @Override 
  public ProductI create() { 
      return new ProductA(); 
  } 

public class FactoryB implements FactoryI { 
  @Override 
  public ProductI create() { 
      return new ProductB(); 
  } 

测试类 

// 工厂方法模式 
public class Client { 
  public static void main(String[] args) { 
      FactoryI factoryA = new FactoryA(); 
      ProductI productA = factoryA.create(); 
      productA.productName(); 
      // 
      FactoryI factoryB = new FactoryB(); 
      ProductI productB = factoryB.create(); 
      productB.productName(); 
  } 

输出 

product A 

product B 

抽象工厂 
理解 

抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。 
应对产品族概念而生,增加新的产品线很容易,但是无法增加新的产品。 
和工厂方法的区别是,抽象工厂往往有多种方法,可以生产多种产品,即产品簇。 
例子 

抽象工厂类 

// 抽线工厂模式 
public interface AbstractFactory { 
  public ProductAI createProductA(); 
  public ProductBI createProductB(); 

工厂实体类 

public class Factory1 implements AbstractFactory { 
  @Override 
  public ProductAI createProductA() { 
      return new ProductA1(); 
  } 

  @Override 
  public ProductBI createProductB() { 
      return new ProductB1(); 
  } 

public class Factory2 implements AbstractFactory { 
  @Override 
  public ProductAI createProductA() { 
      return new ProductA2(); 
  } 

  @Override 
  public ProductBI createProductB() { 
      return new ProductB2(); 
  } 

产品接口 

//产品接口 
public interface ProductBI { 
  public void productName(); 

//产品接口 
public interface ProductAI { 
  public void productName(); 

产品实体类 

public class ProductA1 implements ProductAI { 
  @Override 
  public void productName() { 
      System.out.println("product A1"); 
  } 
}

分享到:
评论

相关推荐

    java设计模式之工厂模式

    java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...

    java三种工厂模式文档+三个实例.rar

    Java工厂模式是面向对象设计模式中的一个重要概念,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不直接实例化具体类,而是通过一个接口或者抽象类来间接创建。这种模式的核心在于将对象的创建过程...

    设计模式之java工厂模式

    "设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...

    Java 工厂设计模式例题

    例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    23种java设计模式.pdf

    JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建模式是指在创建对象时使用的模式,包括 Factory(工厂模式)、Singleton(单例模式)、Builder(建造者模式)、Prototype(原型模式...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    在Java中,简单工厂、工厂方法和抽象工厂是三种不同的工厂模式实现。 5. **简单工厂模式**:是最简单的工厂模式形式,它包含一个工厂类,根据传入的参数决定返回哪种类型的实例。虽然易于理解,但不易扩展,因为...

    JAVA设计模式(java设计)

    Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...

    JAVA设计模式的工厂模式文档和代码

    工厂模式是设计模式中的一种,属于创建型模式,它的主要目标是提供一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂模式使代码能够独立于实际的产品类型进行工作。 工厂模式的核心思想是通过一个共同的...

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    java设计模式pdf

    ### Java设计模式详解 #### 一、背景与概念 在软件工程领域,设计模式是一种用于解决常见问题的可重用解决方案。《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计...

    java设计模式之工厂方法模式

    工厂方法模式是面向对象设计中的一种经典设计模式,属于创建型模式。它的主要目的是将对象的创建过程封装起来,使得创建过程独立于使用过程。在Java中,工厂方法模式允许我们定义一个创建对象的接口,但让实现这个...

    java设计模式之三大工厂模式

    在Java编程领域,设计模式是一种解决常见问题的模板或...在阅读给定的博客文章《java设计模式之三大工厂模式》时,可以期待作者详细解析每种模式的结构、优缺点以及使用示例,帮助读者更好地理解和应用这些设计模式。

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...

    设计模式之工厂模式Java实现和类设计图

    工厂模式作为其中的一种,是对象创建型模式,它的主要目的是为了隔离对象创建过程与客户端之间的关系,使得创建过程更加灵活,同时也隐藏了具体的创建过程。本篇将深入探讨工厂模式在Java中的实现以及类设计图的应用...

    JAVA设计模式之工厂模式.pdf

    JAVA设计模式之工厂模式是软件开发中一种常用的设计模式,它专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。 一、工厂模式的介绍 工厂模式有三种...

    Java设计模式—工厂模式—DEMO

    在这个Java设计模式的实例中,我们将深入探讨工厂模式的概念、工作原理以及如何通过`MainDemo.java`实现一个简单的工厂模式DEMO。 ### 工厂模式概述 工厂模式的主要目标是隔离对象的创建过程,使得客户端代码不...

Global site tag (gtag.js) - Google Analytics