Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Object oriented Design vs. Domain driven Design

Object-oriented design is well known since 20 years. Domain specific languages and domain driven design have become popular with dynamic languages such as Ruby or Python. If your domain consists mainly of objects, for example a subystem to grant badges or achievements (like the badges on Stackoverflow), then one could use both, object-oriented design and domain driven design, since a badge is certainly an object. For example for Ruby, there are two gems to implement this functionality, Badgeable and Paths of Glory. Badgeable uses a DSL, Paths of Glory is based on an object-oriented design. In which cases is it better to use modeling by object-oriented analysis & design, and for what cases is it preferable to use modeling by a domain specific language (i.e. domain driven design)?

like image 503
0x4a6f4672 Avatar asked Oct 26 '12 10:10

0x4a6f4672


1 Answers

OOD and DDD are not interchangable things.

A DDD will very often involve using OOD.

From the Wikipedia page:

Domain-driven design is not a technology or a methodology. DDD provides a structure of practices and terminology for making design decisions that focus and accelerate software projects dealing with complicated domains.

In particular, read the Relationship to other ideas part.

like image 80
occulus Avatar answered Oct 04 '22 08:10

occulus