开发者

Value object or not for 3d points?

开发者 https://www.devze.com 2022-12-22 21:27 出处:网络
I need to develop a geometry library in python, describing points, lines and planes in 3d sp开发者_Go百科ace, and various geometry operations. Related to my previous question.

I need to develop a geometry library in python, describing points, lines and planes in 3d sp开发者_Go百科ace, and various geometry operations. Related to my previous question.

The main issue in the design is if these entities should have identity or not. I was wondering if there's a similar library out there (developed in another language) to take inspiration from, what is the chosen design, and in particular the reason for one choice vs. the other.


I am not familiar with other libraries, but it seems that there 3d points should be (immutable) value objects. - allows sharing of a point between several containers (lines, planes, etc.) - Avoids defensive getters and setters - In real-life a 3d point has no identity.

Also, Josh Bloch is saying (see http://www.infoq.com/presentations/effective-api-design ) that one of the mistakes they did in the design of Java's standard library was that they did not define the Size class as immutable.

0

精彩评论

暂无评论...
验证码 换一张
取 消