0

我需要在python中开发一个几何库,描述3d空间中的点、线和平面,以及各种几何操作。与我之前的问题有关

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

4

1 回答 1

1

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

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

于 2010-03-17T05:51:26.047 回答