Just realized I replied with the wrong subject line.  Here is my reply:

Tim Rowe wrote: "The use of 'VO's in Flex has always confused me, largely 
because as everyone I've spoken to has explained it, all a 'Value' object is is 
just a Model object - therefore WTF are they being referred to as 'VO's when 
'Object' (or Model object) would suffice."

Tim, I have always thought of a model and a VO or DTO differently.  I think 
this is a good quick explanation: 
http://en.wikipedia.org/wiki/Data_Transfer_Object 

>From an MVC perspective, I think a model class contains information sure, but 
>it can and often does contain methods to run logic on data, to retrieve data, 
>to broadcast that data is ready or changed, etc. 

A Value Object (VO) or Data Transfer Object (DTO) – (two terms for the same 
thing, I usually call them VOs because you don't always "transfer" them per se) 
are simple classes that only contain properties that can be get and/or set.  
They do not contain methods, constructors, or any other form of logic.  They 
are "dumb" in a sense, only serving as information repositories.  There is good 
logic in this I think.  I use them all the time.  And I don't think they are 
only for "moving" data around in, they are useful in single session storing of 
information.  So often a model contains references to (say in as a property 
which could be the VO directly or several in an Array or ArrayCollection) and 
also may change data within VOs, as well as broadcast when something changes.

That's my perspective anyway.  


Jason Merrill 
Bank of  America    Global Learning 
Shared Services Solutions Development 

Monthly meetings on the Adobe Flash platform for rich media experiences - join 
the Bank of America Flash Platform Community 


Reply via email to