PureMVC Architects Lounge

Announcements and General Discussion => General Discussion => Topic started by: Helmut Granda on March 24, 2009, 11:18:02



Title: What does VO stands for?
Post by: Helmut Granda on March 24, 2009, 11:18:02
I have seen couple of references to VO but I still can tell what VO stands for.

For example see this line extracted from the following thread:
http://forums.puremvc.org/index.php?topic=950.msg4409#msg4409

"You can just respond to the page change by immediately parsing the segments into a VO, then store in a proxy, which fires off the note that there's a new URL to organize the app around. No need to break into all these steps.

And I'd put this in a Proxy. If other proxies need it they retrieve that proxy to get the info.

-=Cliff>"

Both times I have seen the reference to VO it seems like it has something to do with a Proxi but I still cant quite get it. MVC... VO? :)


Title: Re: What does VO stands for?
Post by: Jason MacDonald on March 24, 2009, 11:35:09
It stands for Value Object

ValueObjects

Excerpted from DomainDrivenDesignBook

Definition: A Value Object is an object that describes some characteristic or attribute but carries no concept of identity.

Problem:
Tracking the identity of Entities is essential, but attaching identity to other objects can hurt system performance, add analytical work, and muddle the model by making all objects look the same.

Software design is a constant battle with complexity. We must make distinctions so that special handling is applied only where necessary.

However, if we think of this category of object as just the absence of identity, we haven?t added much to our toolbox or vocabulary. In fact, these objects have characteristics of their own and their own significance to the model. These are the objects that describe things.

Solution: When you care only about the attributes of an element of the model, classify it as a ValueObject. Make it express the meaning of the attributes it conveys and give it related functionality. Treat the ValueObject as immutable. Don't give it any identity and avoid the design complexities necessary to maintain Entities.


Title: Re: What does VO stands for?
Post by: Helmut Granda on March 24, 2009, 11:44:12
Thank you! It all makes sense now.