History for DynamicDataObjects
??changed:
-
A key goal of !ZPatterns is to "divide and conquer" the concerns of application developers into orthogonal AspectFrameworks with high !FrameworkReusability. Data management is perhaps the most central of these concerns.
To cleanly seperate data management from other application concerns, there must be sufficient InformationHiding between interface and implementation. !ZPatterns achieves this hiding through "dynamic data objects" - objects which do not even know how their own data is stored. Instead, they delegate their data management to DataManagers through DataManagementEvents and data get/set requests. Applications and DomainFrameworks built around DDO's cannot depend on data storage knowledge, because they interact only with the objects, and the objects themselves do not know how their storage is done. This enhances !FrameworkReusability.
As of !ZPatterns 0.3.0, only RackMountables can be DDO's, and RackMountables must be stored in [Racks]. !ZPatterns 0.4.0 and above will support DataSkins, which are DDO's which can be stored in arbitrary locations, so long as a !CustomizerFolder with appropriate [Customizers] is within acquisition context.