我需要用python开发一个几何库,描述3d空间中的点、线和面,以及各种几何操作。Related to my previous question。
设计中的主要问题是这些实体是否应该具有身份。我想知道是否有类似的库(用另一种语言开发)来获取灵感,选择的设计是什么,特别是选择一个与另一个的原因。
发布于 2010-03-17 13:51:26
我对其他库并不熟悉,但似乎3D点应该是(不可变的)值对象。-允许在多个容器(线、平面等)之间共享点-避免防御性getter和setters在现实生活中,3d点没有身份。
此外,Josh Bloch说(参见http://www.infoq.com/presentations/effective-api-design ),他们在设计Java标准库时犯的一个错误是他们没有将Size类定义为不可变的。
https://stackoverflow.com/questions/2453552
复制相似问题