The Address class represents a physical location—a place that something could be mailed or shipped to, or that could be found on a map. The properties of an address are going to be consistent no matter what context the objects are encountered in—that is, an address is an address whether it's associated with an Artisan, a Customer, or an Order—and it feels safe to assume at this point that the whole of any address can be altered by an object that it is a member of, or none of it can be. At this point, barring information to the contrary, it doesn't feel like storing addresses as separate items in the backend data structure will be necessary; although it's possible that they'll have a meaningful independent existence of their own, ...

Get Hands-On Software Engineering with Python now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.