Edition 0 Updated to asp. Net core 0



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə186/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   182   183   184   185   186   187   188   189   ...   288
public
interface
IRepository where T : IAggregateRoot 

IUnitOfWork UnitOfWork { 
get
; } 

Additional resources 

Martin Fowler. Separated Interface.
https://www.martinfowler.com/eaaCatalog/separatedInterface.html
 
Implement value objects 
As discussed in earlier sections about entities and aggregates, identity is fundamental for entities. 
However, there are many objects and data items in a system that do not require an identity and 
identity tracking, such as value objects. 
A value object can reference other entities. For example, in an application that generates a route that 
describes how to get from one point to another, that route would be a value object. It would be a 
snapshot of points on a specific route, but this suggested route would not have an identity, even 
though internally it might refer to entities like City, Road, etc. 
Figure 7-13 shows the Address value object within the Order aggregate. 


214 
CHAPTER 6 | Tackle Business Complexity in a Microservice with DDD and CQRS Patterns 
Figure 7-13. Address value object within the Order aggregate 
As shown in Figure 7-13, an entity is usually composed of multiple attributes. For example, the 
Order
entity can be modeled as an entity with an identity and composed internally of a set of attributes such 
as OrderId, OrderDate, OrderItems, etc. But the address, which is simply a complex-value composed of 
country/region, street, city, etc., and has no identity in this domain, must be modeled and treated as a 
value object. 
Important characteristics of value objects 
There are two main characteristics for value objects: 

They have no identity. 

They are immutable. 
The first characteristic was already discussed. Immutability is an important requirement. The values of 
a value object must be immutable once the object is created. Therefore, when the object is 


215 
CHAPTER 6 | Tackle Business Complexity in a Microservice with DDD and CQRS Patterns 
constructed, you must provide the required values, but you must not allow them to change during the 
object’s lifetime.
Value objects allow you to perform certain tricks for performance, thanks to their immutable nature. 
This is especially true in systems where there may be thousands of value object instances, many of 
which have the same values. Their immutable nature allows them to be reused; they can be 
interchangeable objects, since their values are the same and they have no identity. This type of 
optimization can sometimes make a difference between software that runs slowly and software with 
good performance. Of course, all these cases depend on the application environment and deployment 
context. 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   182   183   184   185   186   187   188   189   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin