Client Architecture User Interface Communication Facades/Services Client Model
Client/Server Architecture User Interface Communication Facades/Services Client Model Communication Data Persistence Facades/Services Server Model
Data Access Objects Data Persistence DAO Interface DAO Implementation 1 DAO Interface DAO Implementation 2 DAO Interface … DAO Implementation 3 …
Data Tranfer Objects (DTOs) • Data-only classes used to move (or “transfer”) data from point A to point B in an application • Moving data into and out of the Data Persistence subsystem • Create, Update, Delete: DTOs passed into DAOs • Read: DTOs passed out of DAOs • Transferring data between client and server (typically over a network) • Web API parameters • Web API results
Data Transfer Objects Data Persistence DAO Interface DAO Implementation 1 DAO Interface DAO Implementation 2 DAO Interface … DAO Implementation 3 Data Transfer Objects DTO …
Client/Server Architecture User Interface COM Impl Facades / Services COM Interfaces Client Model COM DTOs COM Impl User Interface DAO Impl COM Interfaces Facades / Services DAO Interfaces Client Model DAO DTOs
Models vs. DTOs Model DTO Properties / Data Operations / Methods
Avoiding Code Duplication between Models and DTOs Model DTO Properties / Data Operations / Methods