Interactive graphical applications implicitly contain a large number of constraints - relationships between objects, such as widgets and the underlying model they control. Encapsulation, a fundamental principle of object-oriented programming, is only guaranteed in a very limited sense by most object-oriented languages. Constrained-Java provides a constraint system built upon stronger encapsulation guarantees which allows constraints to depend on entire aggregated objects.
|19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA'04|
Gordon, D. (Donald), Noble, J. (James), & Biddle, R. (2004). ConstrainedJava. Presented at the 19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA'04. doi:10.1145/1028664.1028683