Head First 设计模式-工厂模式的疑问?

问题描述

HeadFirst设计模式里的工厂模式那一章,举的例子,是如何从简单工厂模式过渡到工厂方法模式的。在那个例子中,两个模式完成的功能完全相同的吧?

解决方案

解决方案二:
有没有源代码
解决方案三:
简单工厂适合于工厂类负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;简单工厂很容易违反高内聚低耦合原则,因此一般只在很简单的情况下应用如果你的产品是多变的,那么使用简单工厂就不合适了,因为你需要经常修改工厂类,而如果使用工厂方法模式你只需要实现抽象工厂即可,不需要修改原来的类

时间: 2024-08-06 20:16:16

Head First 设计模式-工厂模式的疑问?的相关文章

[Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式

[Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 引言 今天是冬至,去饺子馆吃饺子,看他们店里面的水饺种类挺多,在等待中,在想是不是可以用设计模式模拟一下,生产饺子的过程,正好最近也在看工厂模式,也就现学现卖了.当然,实现的方式很多,只是一个例子而已.祝大家冬至,多多吃水饺..... 对象创建的问题? 我们应该面向接口编程而不是面向实现编程,因

炒冷饭系列:设计模式 工厂模式

一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建 其他类的实例,被创建的实例通常都具有共同的父类. 二.模式中包含的角色及其职责 1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象. 2.抽象(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口. 3.具体产品(Concrete Product)角色 简单工厂模式所创

PHP最常用的2种设计模式工厂模式和单例模式介绍_php技巧

1.工厂模式 主要作用是降低耦合度. 复制代码 代码如下: abstract class Operation{ abstract public function getValue($num1,$num2); public function getAttr(){ return 1; } } class Add extends Operation{ public function getValue($num1, $num2){ return $num1+$num2; } } class Sub ex

传统设计模式(四)工厂模式(简单工厂、普通工厂、抽象工厂)

关于工厂模式和单例模式  大部分项目这2种模式都很常见 例如在orm框架中 工厂模式常用来封装数据库的创建 我们分3种case来看 简单工厂模式 普通工厂模式 抽象工厂模式 抽象一点的说 工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.直接看实例 一般惯性思维 我们遇到分支判断时会这样 public class NormalCase { private DBInstance dbInstance; public NormalCase(string type) { if

Java设计模式(三—四)----工厂模式

Java设计模式 工厂模式 一.引言 二.分类 三.简单工厂模式 四.工厂方法模式 五.抽象工厂模式 六.和工厂方法模式区别 七.总结 工厂模式 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象.在这些情况,新对象的建

设计模式:工厂方法模式(Factory Method)和抽象工厂模式(Abstact Factory)

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

[Head First设计模式]生活中学设计模式——外观模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

[Head First设计模式]生活中学设计模式——迭代器模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

[Head First设计模式]生活中学设计模式——状态模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子