complex values in smalltalk
Distinguishing between stateful objects and Values has long been recognized as fruitful. Values are universal context free abstractions that prevent side-effects and allow for a functional programming style. Though object-oriented programming languages provide simple Values like Integer and String, more complex Values are usually not supported. We show how to model complex structures as Values in Smalltalk, which allows for a simple and versatile implementation. The resulting Smalltalk systems are simple, clear and easily testable.
smalltalk functional programming testability value objects refactoring serialization