From f3711a93832df46dc245075df08b9ebfc05266e9 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Wed, 21 Aug 2024 16:22:08 +0200 Subject: forgot to commit for a while --- Zettelkast/Notes/290220240843 - Value Object.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Zettelkast/Notes/290220240843 - Value Object.md (limited to 'Zettelkast/Notes/290220240843 - Value Object.md') diff --git a/Zettelkast/Notes/290220240843 - Value Object.md b/Zettelkast/Notes/290220240843 - Value Object.md new file mode 100644 index 0000000..10a9afa --- /dev/null +++ b/Zettelkast/Notes/290220240843 - Value Object.md @@ -0,0 +1,15 @@ +A Value Object is a domain object that has no unique identity but if any of its properties change it is no longer the same. An example can be made with money. + +```py +from dataclasses import dataclass + +@dataclass(frozen=True) +class Money: + type: str + value: int + +Money("Euro", 10) != Money("Euro", 9) +Money("GBP", 10) != Money("Euro", 10) +``` + +Thus such an object is a perfect candidate for immutability. With python we can add @dataclass(frozen=True). Frozen=true makes it immutable. \ No newline at end of file -- cgit v1.2.3