6

此页面上,我阅读了以下内容:

工作单元是 Martin Fowler 描述的设计模式

Martin Fowler 是否在 Hibernate 开发人员之前发现了这种模式?他是描述这种模式的唯一来源吗?

4

5 回答 5

25

Martin Fowler 是否在冬眠男孩之前发现了这种模式,Martin 是描述这种模式的唯一来源吗?

Unit Of Work的概念是 ORM 的核心概念,Scott Ambler 在他对 ORM 的杰出研究(可追溯到 1998 年)中进行了描述,尤其是著名的ORM 姊妹论文(现在分成几份文件):

据我所知,大多数现代 ORM 都是基于 Scott Ambler 的论文并共享概念:

  • TopLink 有一个工作单元,即UnitOfWork 1
  • JDO 有一个工作单元,PersistenceManager.
  • Hibernate 有一个工作单元,Session.
  • JPA 有一个工作单元,即EntityManager.

因此,虽然这个概念已经成为 Fowler 描述的一种模式,但 Ambler 的工作显然早于 PoEAA。

1实际上,TopLink 是在 90 年代初创建的,因此早于 Ambler 的工作,我只是不知道他们何时引入了他们的工作单元实现,以及 Ambler 是否以某种方式影响了这一点,或者这是否是由于类似想法的融合而产生的。

于 2010-08-20T17:15:58.510 回答
3

模式不是“发明”的,它们是被观察和描述的。Martin Fowler 仅因观察和描述该模式而受到赞誉。

于 2010-08-20T15:18:29.640 回答
2

你不会“发明”模式。你通过观察事物来发现它们,直到你看到重复的特征。你记录你观察到的重复特征。显然,某些实现必须首先出现。然后有人记录他们。然后其他人阅读并参考文档。

以前用过的人现在都指马丁?

我对此表示怀疑。“每个人”将是很多以前的用户。其中一些人可能 (a) 不参考 Martin 并且 (b) 在 Google 上很难找到,因为该软件太旧了。

于 2010-08-20T15:19:02.913 回答
1

正如引用所说,这是Martin Fowler描述的一种设计模式,没有任何东西声称是他发明的。不过他可能有。

于 2010-08-20T15:17:47.830 回答
0

模式不是发明的;它们作为常见问题的经过验证的解决方案出现,并被发现和描述,与发现生物物种然后描述和命名的方式没有什么不同。当然,在某个地方,有人第一次实现了一个原始的工作单元解决方案,但直到其他人也做了同样的事情并开始分享它,它才可以被描述为一种模式(任何事物的 1 都不是图案)。

Martin Fowler 在描述和命名新兴模式方面非常出色,其中的工作单元就是其中之一。

他发表的描述 UoW 的资料之一是Patterns of Enterprise Architecture,发表于 2002 年(无疑是在该模式本身已经存在很长时间之后)。

于 2010-08-20T15:20:51.397 回答