Domain-Driven Design: Tackling Complexity in the Heart of Software


Partition a complex program into layers. Develop a design within each layer that is



Download 7,21 Mb.
Pdf ko'rish
bet51/343
Sana17.11.2022
Hajmi7,21 Mb.
#867526
1   ...   47   48   49   50   51   52   53   54   ...   343
Bog'liq
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software

Partition a complex program into layers. Develop a design within each layer that is
cohesive and that depends only on the layers below. Follow standard architectural
patterns to provide loose coupling to the layers above. Concentrate all the code related
to the domain model in one layer and isolate it from the user interface, application, and
infrastructure code. The domain objects, free of the responsibility of displaying
themselves, storing themselves, managing application tasks, and so forth, can be


focused on expressing the domain model. This allows a model to evolve to be rich
enough and clear enough to capture essential business knowledge and put it to work.
Separating the domain layer from the infrastructure and user interface layers allows a much
cleaner design of each layer. Isolated layers are much less expensive to maintain, because they
tend to evolve at different rates and respond to different needs. The separation also helps with
deployment in a distributed system, by allowing different layers to be placed flexibly in different
servers or clients, in order to minimize communication overhead and improve performance (Fowler
1996).
Example
Partitioning Online Banking Functionality into Layers
An application provides various capabilities for maintaining bank accounts. One feature is funds
transfer, in which the user enters or chooses two account numbers and an amount of money and
then initiates a transfer.
To make this example manageable, I've omitted major technical features, most notably security.
The domain design is also oversimplified. (Realistic complexity would only increase the need for
layered architecture.) Furthermore, the particular infrastructure implied here is meant to be simple
and obvious to make the example clear—it is not a suggested design. The responsibilities of the
remaining functionality would be layered as shown in Figure 4.1.

Download 7,21 Mb.

Do'stlaringiz bilan baham:
1   ...   47   48   49   50   51   52   53   54   ...   343




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish