Content deleted Content added
m →Data: more references. |
m →Data |
||
Line 14:
The data remains "what the system ''is''."<ref name="Artima">{{cite web |author1=Trygve Reenskaug |author2=James O. Coplien |title=The DCI Architecture: A New Vision of Object-Oriented Programming |url=https://fulloo.info/Documents/ArtimaDCI.html}}</ref> The ''data'' part of the DCI architecture is its (relatively) static data model with relations. The data design is usually coded up as conventional classes that represent the basic ___domain structure of the system. These classes are barely smart data<ref name="Artima" /><ref>{{cite web |author1=James O. Coplien |title=A Glimpse of Trygve: From Class-oriented Programming to Real OO |url=https://www.youtube.com/watch?v=lQQ_CahFVzw#t=1304 |publisher=ACCU Conference 2016}}</ref>, and they explicitly lack the functionality that is peculiar to support of any particular [[use case]]. These classes commonly encapsulate the physical storage of the data. These data implement an information structure that comes from the mental model of end users, ___domain experts, programmers, and other ''people'' in the system. They may correspond closely to the model objects of MVC<ref name="Artima" />.
An example of a data object could be a bank account. Its interface would have basic operations for increasing and decreasing the balance and for inquiring about the current balance. The interface would likely not offer operations that involve transactions, or which in any way involve other objects or any user interaction. So, for example, while a bank account may offer a primitive for increasing the balance, it would have no method called <code>deposit</code>. Such operations belong instead in the interaction part of DCI<ref name="Artima" />.
Data objects are instances of classes that might come from [[___domain-driven design]], and such classes might use subtyping relationships to organize ___domain data. Though it reduces to classes in the end, DCI reflects a computational model dominated by object thinking rather than class thinking. Therefore, when thinking "data" in DCI, it means thinking more about the instances at run time than about the classes from which they were instantiated<ref name="DCI Paradigm">{{cite web |author1=James O. Coplien |author2=Trygve Reenskaug |title=The DCI Paradigm: Taking Object Orientation Into the Architecture World |url=https://fulloo.info/Documents/CoplienReenskaugASA2012.pdf}}</ref>.
|