工厂模式举例

1.简单:简单工厂类里最重要的创建物体的方法。

如下图所示,其实就是把 createPizza方法从PizzaStore类中分离开到一个单独的类中,这个类就是简单工厂类。

2.中等:如果工厂也分类了,有不同的工厂。

createPizza放到对应的子类中实现了。子类PizzaStore 根据 传入pizza类型参数 createPizza。

Pizza的子类也增加为”Style“ + ”Type“的组合。

3.复杂:考虑如何生成不同Style和不同Type的Pizza。假设其根本原因在于其原料的不同,所以在Pizza类中增加一个 原料工厂类成员。

而这个原料工厂类具体是什么,由上一层具体的PizzaStore来指定。

比如NYPizzaStore,指定制作Pizza的原料用NYPizzaIngredientFactory。

参考:《headfirst设计模式》

时间: 2024-10-05 06:29:54

工厂模式举例的相关文章

Java工厂模式(Factory模式)

工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量. 我们以类Sample为例,

Java设计模式之工厂模式(Factory模式)介绍(转载)

原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工厂.Java工厂模式举例等内容,需要的朋友可以参考下 工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经

简单工厂模式-Java篇

简单工厂模式就是考虑如何实例化对象的问题,就是说到底要实例化谁,将来会不会增加实例化对象,比如计算器类中增加开根元素,应该考虑用一个单独的类来创造实例的过程,这就是工厂.下面将利用计算器类举例,解释简单工厂模式: 1.运算符类: 1 package com.lujie; 2 3 public class Operation { 4 private double _numberA=0; 5 private double _numberB=0; 6 7 public void set_numberA

ASP.NET:就抽象工厂模式的一些说明(图文并茂,举例说明)

最近再在做一套CMS,发现有组员对抽象工厂这一开发模式概念不清晰,应他们要求,这里我就简要说明下各层之间的关系,对抽象工厂模式有不明白的朋友可以看看,说的不对之处还请指出: 所谓的三层开发,无外乎: 数据访问层.业务逻辑层和显示层: 至于模型层(穿插3层,不在其中,若真要算,可以认为是数据访问层,但实质上是位于数据库和数据访问层之间): 而抽象工厂模式是在三层开发的基础上增加了一个工厂层和接口层,像我现在的项目就是这么几个类库:实体类库,接口类库,数据访问层类库,工厂类库,业务逻辑层类库和显示层

设计模式之简单工厂模式

设计模式之简单工厂模式 动机:         不暴露实例化逻辑来创建对象.通过公共的接口创建新的对象.         这是一个简单的实现,客户端需要一个product,但是client不直接使用new对象,而是通过提供需要的对象信息来找factory得到新的product.         这个factory实例化一个具体的product并返回(转化成抽象的类),client段使用这个抽象的类而不用考虑它具体的实现. 应用举例:        也许工厂模式是使用最多的模式之一.举个例子,一个

设计模式学习-简单工厂模式

1.什么是简单工厂模式 简单工厂模式属于类的创建模式,又叫做静态工厂模式,是通过专门建立一个类负责创建其他类的实例,被创建的类通常有着共同的父类,之所以称之为工厂,就是因为负责创建其他类的类能够根据传递参数的不同,产生不同的实例,使得程序满足松耦合.重用度高.易修改维护的特点. 2.简单工厂模式的实现 下面举例说明工厂模式,比如说我们要实现一个两个数的size运算,那么如何去设计能过做到我们上面说的特性.首先我们要设定一个运算的终极父类: #include <iostream> #includ

设计模式(一)工厂模式Factory(创建型)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你如何能轻松方便地构造对象实例,而不必关心构造对象实例的细节和

设计模式之创建型模式—— 1.3 抽象工厂模式

<?php /**  * 1.3 抽象工厂模式  * 解决的问题:  *  如何解决多个类实例化对象的问题.  * 解决的方案:  *  提供一个创建一系列相关或相互依赖对象的  *    接口,而无需指定它们具体的类.  * 该模式包含四种角色:  *  1. 抽象产品角色(两个或多个)  *  职责:同工厂方法模式  *    2. 具体产品角色  *    职责:同工厂方法模式  *      3. 抽象工厂角色  *    职责:同工厂方法模式  *      4. 具体工厂角色  * 

设计模式学习第三天:2.1简单工厂模式

一. 简单工厂(Simple Factory)模式      Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例.通常它返回的类都有一个公共的父类和公共的方法.      Simple Factory模式实际上不是GoF 23个设计模式中的一员. 二. Simple Factory模式角色与结构: 工厂类角色Creator (LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产品对象.      抽象产品角色Product