Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ganesh Subramanian 22/12/2010

Similar presentations


Presentation on theme: "Ganesh Subramanian 22/12/2010"— Presentation transcript:

1 Ganesh Subramanian 22/12/2010 http://sysin.wordpress.com http://dynamicquerygen.sourceforge.net

2 Problem

3  Diverse Characters to solve one problem  Everybody talks in different language  Ultimate Result- Delivered solution is brittle and Fragile Problem

4  Everybody who are involved should talk in one Language Step 1 : Agree on language terminology and definitions Step 2: Call on the language expert Step 3 : Use Business model to device the language Solution

5 What is DDD?  Not a technology or a methodology  A way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains  Primary focus on the domain and domain logic  Complex domain designs based on a model. Domain Driven Design

6 Traditional Architecture Presentation Layer Business Layer Data Access Layer Infrastructure Layer

7 Layered Architecture

8  User Interface Responsible for showing information to the user and interpreting the user's commands  Application Does not contain business rules or knowledge Coordinates tasks and delegates work to domain objects Does not have state reflecting the business situation Interacts with application layer of other systems  Domain Contains business logic and rules Reflects the state of business situation Heart of business software  Infrastructure Provides generic technical capabilities that support the higher layers Persistence, Sending Emails, libraries, utilities etc… Layered Architecture (contd…)

9 Building Blocks

10 Shopping Cart Application DDD in Practice

11 Shopping Cart Application

12 Shopping Cart Domain Model

13  Entity A noun with an identity Mutable - State can change over time Can be associated with other entities and value objects Can’t be shared  Value Object A noun without an identity Immutable - State can’t change Can be associated with other entities Can be shared  Aggregate  One root entity per aggregate  Associated entities can refer to root but not other entities in the aggregate  All operations are done through root Building Blocks Revisited

14  Service Has operations that conceptually doesn’t below to an domain object Stateless Interface is defined in terms of other elements of the domain model A service can be part of any layer (Application, Domain, Infrastructure)  Factory Creates the entities and value objects Use only when the entity creation is complex  Repository Collection of entities Takes care of updating an entity Takes care of retrieving an already persisted entity One repository per aggregate root Building Blocks Revisited (Contd…)

15 Layers in Shopping cart App

16 ??? Questions


Download ppt "Ganesh Subramanian 22/12/2010"

Similar presentations


Ads by Google