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


Cargo is undetermined, but that it must accomplish the goal set out in the  Delivery Specification



Download 7,21 Mb.
Pdf ko'rish
bet108/343
Sana17.11.2022
Hajmi7,21 Mb.
#867526
1   ...   104   105   106   107   108   109   110   111   ...   343
Bog'liq
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software

Cargo
is undetermined, but that it must accomplish the goal set out
in the 
Delivery Specification
.
3.

role
distinguishes the different parts played by 
Customers
in a shipment. One is the "shipper,"
one the "receiver," one the "payer," and so on. Because only one 
Customer
can play a given role
for a particular 
Cargo
, the association becomes a qualified many-to-one instead of many-to-
many. 
Role
might be implemented as simply a string, or it could be a class if other behavior is
needed.
Carrier Movement
represents one particular trip by a particular 
Carrier
(such as a truck or a
ship) from one 
Location
to another. 
Cargoes
can ride from place to place by being loaded onto
Carriers
for the duration of one or more 
Carrier Movements
.
Delivery History
reflects what has actually happened to a 
Cargo
, as opposed to the 
Delivery
Specification
, which describes goals. A 
Delivery History
object can compute the current
Location
of the 
Cargo
by analyzing the last load or unload and the destination of the
corresponding 
Carrier Movement
. A successful delivery would end with a 
Delivery History
that
satisfied the goals of the 
Delivery Specification
.
All the concepts needed to work through the requirements just described are present in this
model, assuming appropriate mechanisms to persist the objects, find the relevant objects, and so
on. Such implementation issues are not dealt with in the model, but they must be in the design.
In order to frame up a solid implementation, this model still needs some clarification and
tightening.
Remember, ordinarily, model refinement, design, and implementation should go hand-in-hand in
an iterative development process. But in this chapter, for clarity of explanation, we are starting
with a relatively mature model, and changes will be motivated strictly by the need to connect that


model with a practical implementation, employing the building block patterns.
Ordinarily, as the model is being refined to support the design better, is should also be refined to
reflect new insight into the domain. But in this chapter, for clarity of explanation, changes will be
strictly motivated by the need to connect with a practical implementation, employing the building
block patterns.
[ Team LiB ]


[ Team LiB ]

Download 7,21 Mb.

Do'stlaringiz bilan baham:
1   ...   104   105   106   107   108   109   110   111   ...   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