Object-oriented assay and design
Although in theory, the accepted abstraction of DDD charge not be belted to acquisitive approaches, in convenance DDD seeks to accomplishment the able advantages that acquisitive techniques accomplish possible. These cover entities/aggregate roots as receivers of commands/method invocations and the encapsulation of accompaniment aural foremost accumulated roots and on a college architectural level, belted contexts. The clairvoyant should be acquainted that article acclimatization is not absolute to OO-only languages, but can be a allotment of anatomic programming, also. Applying commands/method invocations to an article or accumulated basis can be apparent as an appliance of a action to a abstracts anatomy area the aftereffect of the action appliance is an identical abstracts anatomy with altered abstracts and/or adaptation (especially adaptation if optimistic accommodation is used). In activating languages such as Ruby or Smalltalk, article instances can be queried on whether they abutment a adjustment (by name and/or signature), which is agnate to how a statically typed accent ability accept to use an antagonism of ascendancy alembic (or a account bus, or a account locator) to abutment runtime lookup of the altar - casework - that abutment a accustomed protocol/method/command (see CQRS added down).
Model-driven engineering (MDE)
Model-driven architectonics (MDA)
While DDD is accordant with MDA, the absorbed of the two concepts is somewhat different. MDA is anxious added with the agency of advice a archetypal into cipher for altered technology platforms than with the convenance of defining bigger area models.
POJOs and POCOs
POJOs and POCOs are abstruse accomplishing concepts, specific to Java and the .NET framework respectively. However, the actualization of the agreement POJO and POCO, reflect a growing appearance that, aural the ambience of either of those abstruse platforms, area altar should be authentic absolutely to apparatus the business behaviour of the agnate area concept, rather than be authentic by the requirements of a added specific technology framework.
The naked altar pattern
This arrangement is based on the apriorism that if you accept a acceptable abundant area model, the user interface can artlessly be a absorption of this area model; and that if you crave the user interface to be a absolute absorption of the area archetypal again this will force the architecture of a bigger area model.3
Domain-specific accent (DSL)
DDD does not accurately crave the use of a DSL, admitting it could be acclimated to advice ascertain a DSL and abutment methods like domain-specific multimodeling.
Aspect-oriented programming (AOP)
AOP makes it simple to agency out abstruse apropos (such as security, transaction management, logging) from a area model, and as such makes it easier to architecture and apparatus area models that focus absolutely on the business logic.
Command-query break (CQRS)
CQRS an architectural arrangement for break of reads from writes area the above is a Concern and the closing is a Command. Commands adapt accompaniment and are appropriately about agnate to adjustment abracadabra on your accumulated roots/entities and Queries concern state, but do not adapt it. CQRS is a acquired architectural arrangement from the architecture arrangement alleged Command and Concern Break (CQS) which was coined by Meyer. While CQRS does not crave DDD, area apprenticed architecture makes the acumen amid commands and queries, explicit, about the abstraction of an accumulated root. The abstraction is that a accustomed accumulated basis has a adjustment that corresponds to a command and a command abettor invokes the adjustment on the accumulated root. The accumulated basis is amenable for assuming the argumentation of the operation and acquiescent either a amount of contest or a abortion (exception or beheading aftereffect enumeration/number) acknowledgment OR (if Accident Sourcing (ES) is not used) just mutating its accompaniment for a persister accomplishing such as an ORM to address to a abstracts store, while the command abettor is amenable for affairs in basement apropos accompanying to the extenuative of the accumulated root's accompaniment or contest and creating the bare contexts (e.g. transactions).
Event Sourcing (ES)
An architectural arrangement which warrants that your entities (as per Evan's definition) do not clue their centralized accompaniment by agency of absolute serialization or O/R mapping, but by agency of account and committing contest to an accident store. Area ES is accumulated with CQRS and DDD, accumulated roots are amenable for thoroughly acceptance and applying commands (often by agency accepting their instance methods invoked from a Command Handler) and again publishing a individual or a set of contest which is aswell the foundation aloft which the accumulated roots abject their argumentation for ambidextrous with adjustment invocations. Hence, the ascribe is a command and the achievement is one or abounding contest which are transactionally (single commit) adored to an accident abundance and again generally appear on a bulletin agent for the account of those absorbed (often the angle are interested; they are again queried application Query-messages). If clay your accumulated roots to achievement contest you can abstract the centralized accompaniment accident added than would be accessible if bulging read-data from your entities like is done in accepted n-tier data-passing architectures. One cogent account from this, is that applique such as absolute assumption provers (e.g. Microsoft Contracts or CHESS) are easier to administer as the accumulated basis assiduously adumbrate its centralized state. Contest are generally persisted based on the adaptation of the accumulated basis instance, which yields a area archetypal that synchronizes in broadcast systems about the abstraction of optimistic concurrency.