`

二十一:简单工厂模式

阅读更多
一:简单工厂模式的实现
比如我们要描述以下三种水果:葡萄Grape,草莓Strawberry,苹果:Apple.
(1)首先建立一个水果类Fruit接口,便于与其他植物区分开来.
(2)让Grape,Strawberry,Apple分别实现Fruit接口
(3)再建一个生产水果的工厂FruitFactroy,这个工厂提供一个静态方法:
public class FruitFactory{ 
public static getFruit(String which){ 
if(which.equals("apple")){ 
return new Apple(); 
}else if(){ 
} 
else if(){ 
} 
} 
} 

上面就是一个简单工厂模式的实现.这个模式根据传入的参数决定创建出哪一种产品类的实例.
缺点:当增加一个水果类时,这时就要修改FruitFactory,所以这个模式不完全具有"开-闭"原则.

二:简单工厂模式与其他模式之间的关系
A:单例模式
单例模式使用了简单工厂模式,换言之,单例类具有一个静态工厂方法提供自身实例,它使用一个静态属性存储自己的惟一实例,工厂方法仅仅提供这个实例.
B:多例模式
多例模式往往会有一个聚集属性,通过向这个聚集属性登记已经创建的实例达到循环使用实例的目的.
C:备忘录模式
单例模式和多例模式使用一个属性或聚集属性来登记所创建的产品对象,以便通过查询这个属性或者聚集属性找到并共享已经创建出来的产品对象,这就是备忘录模式的应用。

三:简单工厂模式在Java中的应用
A:DateFormat与简单工厂模式
DateFormat是一个抽象类,但却提供了很多static final的方法getDateInstance(),这个方法并没有也不可能调用DateFormat的构造子来提供自己的实例,作为一个工厂方法,getDateInstance()方法做了一些有趣的事情,它所做的事情基本上可以分为两个部分:一是运用了多态性,二是使用了静态工厂方法.返回的具体对象由它的子类SimpleDateFormat来完成。如果将来有新的具体子类被加入到系统中,那么工厂类可以将交给客户端的对象换成新的子类的实例,而对客户端没有任何影响,这种将工厂方法的返回类型设置成抽象类型的做法,叫做针对抽象编程,这也正是依赖倒转原则的应用.
分享到:
评论

相关推荐

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

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

    设计模式一:简单工厂模式(PHP源码)

    简单工厂模式是软件设计模式中的一种,它属于创建型模式,主要用来解决对象的创建问题。在PHP中,我们可以利用这种模式来简化对象的实例化过程,减少代码的耦合度,提高代码的可维护性。 简单工厂模式的核心思想是...

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

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

    Java工厂模式:简单工厂、工厂方法模式、抽象工厂模式代码示例

    在Java中,工厂模式分为三种:简单工厂、工厂方法模式和抽象工厂模式。 **简单工厂模式** 是最基本的工厂模式,它由一个工厂类根据传入的参数决定创建哪一种产品类的实例。简单工厂容易实现,但违反开闭原则,即...

    第一讲:简单工厂模式

    简单工厂模式是软件设计模式中的一种基础构造,它属于创建型模式,主要用来解决对象的创建问题,使得代码更加简洁、易读,并且易于维护。在这个主题中,我们将深入探讨简单工厂模式的基本概念、实现方式以及它在实际...

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

    1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。在C++中,这个工厂类通常包含一个静态方法,根据传入的参数或者条件决定创建哪个类的实例。这种模式的优点是客户端无需知道...

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

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

    实验四:工厂模式.rar

    在Java中,工厂模式有三种主要的形式:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式**:也称为静态工厂方法模式,它包含一个知道如何创建对象的静态工厂方法。这个静态方法根据输入参数来决定...

    C++ 设计模式:简单工厂、工厂方法、抽象工厂练习代码

    本主题聚焦于C++中的三个工厂模式:简单工厂、工厂方法和抽象工厂。这些模式都围绕着对象的创建过程,旨在提高代码的灵活性、可读性和可维护性。 1. **简单工厂模式**: - 简单工厂模式是一种静态工厂方法,它提供...

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

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

    设计模式:简单工厂、方法工厂、抽象工厂、单例、原型、委派、模板、代理、策略

    1. **简单工厂**:简单工厂模式是一种创建型设计模式,它提供一个工厂类来负责创建对象,而无需暴露创建逻辑。客户端只需传递一个参数给工厂,工厂就会返回相应的对象。 2. **方法工厂**:通常,这是对简单工厂模式...

    C#面向对象设计模式1:简单工厂

    本文将深入探讨C#编程语言中的一个基础设计模式——简单工厂模式。 简单工厂模式是一种创建型设计模式,它的主要目的是提供一个工厂类来负责创建特定类型的对象,而无需让客户端代码知道具体创建过程。在C#中,我们...

    Android也架构之三:简单工厂模式优化网络请求

    1、学会用简单工厂模式,基于api接口开发的工作模式,接口的特点是可插拔,不会影响到客户端数据。 2、学会用httpclient框架请求http数据,涉及到android的httpclient框架的细节知识点,比如httpclient自动重连机制...

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

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

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

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

    uml 文档 简单工厂模式

    在java代码中,我们可以使用以下方式实现简单工厂模式: ```java // 产品接口 public interface Product { void getName(); } // 具体产品 A public class ProductA implements Product { public void getName()...

    (超详细,超易懂)设计模式(一):简单工厂模式,太上老君八卦炉的实践

    简单工厂模式是一种创建型设计模式,主要用于根据不同的条件创建不同的对象。在C#中,简单工厂模式可以通过一个静态方法来实现。 首先,我们需要定义一个接口,表示要创建的对象的共同功能。例如,西游中太上老君会...

    ASP.NET高级编程:使用工厂模式屏蔽校园BBS数据库差异.pptx

    我们已经将“校园BBS”利用三层的开发模式开发完毕,接下来的任务就是在简单三层的基础上如何使用工厂模式来屏蔽数据库不同带来的差异,让我们的“校园BBS”适用所有数据库平台,使程序有更好的适应性和可扩展性。...

    设计模式UML图--工厂模式

    在给定的“设计模式UML图--工厂模式”中,我们关注的是三种不同的工厂模式:简单工厂、工厂方法和抽象工厂。这些模式都是创建型设计模式,它们的核心目标是为对象的创建提供一种抽象,使得客户端代码不必关心具体的...

    C#程序:简单工厂程序

    在C#中,我们可以这样实现简单工厂模式: ```csharp public abstract class Operation { public abstract double Execute(double num1, double num2); } public class OperationAdd : Operation { public ...

Global site tag (gtag.js) - Google Analytics