IoC模式和factory method模式的一些区别

原创 2004年07月08日 12:40:00

2004年第2期的《程序员》杂志里,有一篇martin flower的关于Ioc的文章。拜读过martin的《refactor》,所以关于他的文章当然要细细品味。不过在martin用来说明IoC的例子,我觉得似乎很困惑。我完全可以用一个factory method来代替IoC实现这个例子。所以不明白这两者之间有什么具体区别,还是说工厂的方法就是实现IoC的一个具体实现。

后来在jdon上看到bq的文章,正好是我需要的。

 

假设有两个类B 和 C:B作为调用者,C是被调用者,在B代码中存在对C的调用:

public class B{
   private C comp;
  ......
}

 

当客户端调用B时,分别使用工厂模式和Ioc有不同的特点和区别:

  主要区别体现在B类的代码,如果使用Ioc,在B类代码中将不需要嵌入任何工厂模式等的代码,因为这些工厂模式其实还是与C有些间接的联系,这样,使用Ioc彻底解耦了B和C之间的联系。

  使用Ioc带来的代价是:需要在客户端或其它某处进行B和C之间联系的组装。

  所以,Ioc并没有消除B和C之间这样的联系,只是转移了这种联系。

设计模式总结之Factory Method Pattern(工厂方法模式)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。...
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:44
  • 1274

设计模式:Abstract Factory和Builder(比较区别,个人认为讲得很明白)

如果说 Factory和Prototype是同一个层次的话,那么Abstract Factory和Builder就是更高一级的层次。 1 Abstact Factory   在上面的Factory类型...
  • lovingprince
  • lovingprince
  • 2007年04月17日 10:59
  • 4226

IoC模式和factory method模式的一些区别

2004年第2期的《程序员》杂志里,有一篇martin flower的关于Ioc的文章。拜读过martin的《refactor》,所以关于他的文章当然要细细品味。不过在martin用来说明IoC的例子...
  • evilzydar
  • evilzydar
  • 2004年09月20日 18:46
  • 586

浅谈JAVA设计模式之——工厂方法(FactoryMethod)

一、概述             定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。       二、适用性  当一个类不知道它所必须创建...
  • l1028386804
  • l1028386804
  • 2015年05月02日 17:27
  • 1145

Builder与Factory,殊途同归!

Builder与Factory,殊途同归! 在设计模式的学习过程中,Builder与Factory是创建模式中两个经典的教程,给与了我们很多值得汲取的宝贵设计思想,然而Builder与F...
  • haluoluo211
  • haluoluo211
  • 2016年09月06日 16:36
  • 528

Factory Method vs Abstract Factory

Factory Method vs Abstract Factory
  • u010373266
  • u010373266
  • 2016年12月20日 16:26
  • 315

设计模式之工厂方法模式(Factory Method)摘录

设计模式之工厂方法模式(Factory Method)摘录!
  • fengbingchun
  • fengbingchun
  • 2014年03月23日 16:44
  • 2045

Strategy模式和Template Method模式的异同浅析

一、Strategy模式 1. 特点说明: 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。适用场景: 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为...
  • aheroofeast
  • aheroofeast
  • 2011年08月19日 20:16
  • 3103

以boost factory & boost function实现对象工厂设计模式

  本文介绍以boost factory & boost function实现C++对象工厂设计模式
  • mpforwd
  • mpforwd
  • 2010年08月05日 21:42
  • 4421

IOC概念,反射例子

http://blog.csdn.net/benjamin_whx/article/details/41791707 Ioc概念: 包括两个内容:控制&反转 对于软件来说,是某一接口具体...
  • Baple
  • Baple
  • 2015年03月17日 14:02
  • 1409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IoC模式和factory method模式的一些区别
举报原因:
原因补充:

(最多只允许输入30个字)