2010-03-16 24 views
0

J'ai besoin de développer une bibliothèque de géométrie en python, décrivant des points, des lignes et des plans dans l'espace 3d, et diverses opérations de géométrie. Related to my previous question.Valeur objet ou non pour les points 3d?

Le principal problème dans la conception est de savoir si ces entités doivent avoir une identité ou non. Je me demandais s'il y avait une bibliothèque similaire (développée dans une autre langue) pour s'inspirer, quel est le design choisi, et en particulier la raison d'un choix par rapport à l'autre.

Répondre

1

Je ne connais pas d'autres bibliothèques, mais il semble que les points 3d devraient être des objets de valeur (immuables). - permet le partage d'un point entre plusieurs conteneurs (lignes, avions, etc.) - Évite les getters et setters défensifs - Dans la vie réelle, un point 3d n'a pas d'identité. Josh Bloch dit aussi (voir http://www.infoq.com/presentations/effective-api-design ) que l'une des erreurs qu'ils ont commises dans la conception de la bibliothèque standard de Java était qu'ils ne définissaient pas la classe Size comme immuable.