简单工厂的实质是将消费类对具体产品类的依赖,转换成对产品接口的依赖,而其核心是在工厂中决定提供给消费类的具体产品是什么,将使用具体产品的逻辑从消费类中集中转移到工厂,简化消费类的开发。
非常简单的Demo
package pattern;
public class SimpleFactoryDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Comsumer comsumer=new Comsumer(Factory.getProduct());
comsumer.doConsumerJob();
}
}
//共同的接口或抽象父类是产品必须实现的
interface IProduct {
void printIdentity();
}
class ProductA implements IProduct {
@Override
public void printIdentity() {
// TODO Auto-generated method stub
System.out.println("I'm A");
}
}
class ProductB implements IProduct {
@Override
public void printIdentity() {
// TODO Auto-generated method stub
System.out.println("I'm B");
}
}
class Comsumer {
// 消费类只需要使用产品,而不需要关心产品的生成和具体行为
private IProduct product;
public Comsumer(IProduct product) {
this.product = product;
}
public void setProduct(IProduct product) {
this.product = product;
}
public void doConsumerJob() {
this.product.printIdentity();
}
}
class Factory {
//工厂类负责决定创建那个产品,可以加入判断逻辑
public static IProduct getProduct() {
//这是一个非常简单的判断逻辑,决定生产A还是B
int i = (int) (Math.random() * 20);
if (i % 2 == 0)
return new ProductA();
else
return new ProductB();
}
}
其缺点在于工厂与产品类耦合非常紧密,而且判断逻辑在产品增加之后必须修改工厂类的代码。
分享到:
相关推荐
**设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建对象,客户端无需知道所创建的对象的具体类,只需要...
简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一的工厂类负责生产所有相关类型的实例。这种模式适用于产品种类较少且...
简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了客户端代码与具体产品类之间的耦合度。在本实验中,我们将深入理解和应用C#语言实现简单工厂模式。 简单工厂模式的...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式的主要目的是为了隔离产品对象的创建和使用,使得系统对产品类的依赖降低到最低,同时也方便了产品的扩展和...
这个是http://blog.csdn.net/dawanganban/article/details/9884681博客中java设计模式的源代码。下载前请先看《设计模式——工厂模式在开发中的应用》一文。
在软件设计模式中,工厂模式是一种非常常见的创建型模式,它提供了一种创建对象的最佳方式。C#中的工厂模式分为简单工厂、抽象工厂和单例模式三种,每一种都有其特定的应用场景和优势。 1. **简单工厂模式**: ...
### C#工厂模式详解——简单工厂与抽象工厂实例解析 #### 一、工厂模式概述 工厂模式是一种常用的设计模式,在面向对象编程中被广泛应用于创建对象。它通过提供一个统一的接口来创建一系列相关的或相互依赖的对象...
### 设计模式C#描述之——简单工厂模式 #### 知识点概述 简单工厂模式是一种常用的设计模式,属于创建型模式之一。该模式的主要目的是为了封装产品对象的创建过程,将这一过程从客户端分离出来,使客户端无须关心...
本Demo程序主要涵盖了两种常用的创建型设计模式——简单工厂模式(Simple Factory)和工厂方法模式(Factory Method)。这两种模式都是用来创建对象,但它们在灵活性和抽象程度上有所不同。 简单工厂模式是一种静态...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的原理、应用场景以及如何有效地在实际编程中应用它们。设计模式并不是...
**Java设计模式——简单工厂** 简单工厂模式是软件设计模式中的一种基础模式,它属于创建型设计模式。在Java编程中,我们常常会遇到需要创建一系列相关或相互依赖的对象,而这些对象的创建过程可能会非常复杂。这时...
### 设计模式——基于C#的工程化实现及扩展 #### 概述 本书旨在向读者展示如何利用C# 2.0语法有效地实现和应用设计模式,使其不仅仅局限于简单的例子,而是能够在实际工程项目中发挥重要作用。全书分为七个部分,...
### 设计模式——简单工厂模式解析与应用实例 #### 一、简单工厂模式概述 简单工厂模式(Simple Factory Pattern)是一种常用的创建型设计模式。它提供了一种方式来封装对象的创建过程,使得整个系统更加灵活,...
Java设计模式——工厂设计模式详解 在软件设计中,工厂设计模式是一种常用的设计模式,主要用于实例化有共同接口的类。Java设计模式——工厂设计模式是Java中的一种常用的设计模式,主要用于实例化有共同接口的类。...
本文将深入探讨C#编程语言中的一个基础设计模式——简单工厂模式。 简单工厂模式是一种创建型设计模式,它的主要目的是提供一个工厂类来负责创建特定类型的对象,而无需让客户端代码知道具体创建过程。在C#中,我们...
在《设计模式——约会版》这一独特视角下探讨的设计模式,并非我们传统意义上的面向对象设计模式(如工厂模式、单例模式等),而是通过模拟约会场景,将抽象的设计原则与实际生活中的互动策略相结合,以此来形象地...
**Java设计模式——简单工厂模式** 简单工厂模式是软件设计模式中的创建型模式之一,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(工厂类)负责创建其他类的实例,客户端通过工厂类来获取所需...
在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...
### 实验七 设计模式——创建型模式 #### 一、实验目的 1. **掌握设计模式:** 通过本实验,学生将深入了解三大类型的23种设计模式,并掌握每种模式的基本工作原理及其适用场景。 2. **应用场景设计:** 学生能够...
本文实例讲述了Python设计模式之简单工厂模式。分享给大家供大家参考,具体如下: 简单工厂模式(Simple Factory Pattern):是通过专门定义一个类...设计模式——简单工厂模式 简单工厂模式(Simple Factory Pattern):是通