这是一个术语标准化进化的问题
1. Value Object最早被Java用来表示DTO. http://en.wikipedia.org/wiki/Value_object
2. Martin Fowler则分别用来表示两个不同的概念.所以才造成概念紊乱.
http://martinfowler.com/eaaCatalog/dataTransferObject.html
http://martinfowler.com/eaaCatalog/valueObject.html
如果要清晰的讨论,应该用Martin的定义为标准.