, , - - .
, . . "" . . , , , .
, , TClient.Save TClient.Load, , , , , , , , , . ( GUI, , GUI), , DataStore.Load(ClientInstance) DataStore.Save(ClientInstance). , . # RTTI Delphi Client, .
- , " , ", , , , , , , /.
, , , .
( , - -, BAL):
+---+ +-------------+
| C |<--| Data Access |<--------------------------+
| o | +-------------+ |
| m | | |
| m | | |
| o | v |
| n | +-------------+ +----------------+ +-----+
| |<--| Model +<--| Cross class |<--| GUI |
| | +-------------+ | business rules | | |
| | | | | |
| |<--------------------| | | |
| | +----------------+ | |
| | | |
| |<-----------------------------------------| |
+---+ +-----+
INotify, , , , , , .
, INotify "", , , / "", . , , , , . () , , .
, . - , , , , , "Logger". , , , / "".
+--------------------------------------------+
+-----| Cross cutting concerns |
| +--------------------------------------------+
v v^ ^
+---+ +-------------+ |
| C |<--| Data Access |<--------------------------+ |
| o | +-------------+ | |
| m | | | |
| m | | | |
| o | v | v
| n | +-------------+ +----------------+ +-----+
| |<--| Model +<--| Cross class |<--| GUI |
| | +-------------+ | business rules | | |
| | | | | |
| |<--------------------| | | |
| | +----------------+ | |
| | | |
| |<-----------------------------------------| |
+---+ +-----+