是否为3d点的值对象?

时间:2010-03-16 10:29:56

标签: geometry value-objects

我需要在python中开发一个几何库,描述3d空间中的点,线和平面,以及各种几何操作。 Related to my previous question

设计中的主要问题是这些实体是否应具有身份。我想知道是否有一个类似的库(用另一种语言开发)从中获取灵感,选择的设计是什么,特别是一个选择与另一个选择的原因。

1 个答案:

答案 0 :(得分:1)

我不熟悉其他库,但似乎有3d点应该是(不可变的)值对象。      - 允许在几个容器(线,平面等)之间共享一个点      - 避免防守吸气者和制定者      - 在现实生活中,3d点没有身份。

另外,Josh Bloch说(见http://www.infoq.com/presentations/effective-api-design )他们在Java标准库的设计中所犯的错误之一是他们没有将Size类定义为不可变的。