summaryrefslogtreecommitdiff
path: root/zettelkast/Notes/290220240843 - Value Object.md
diff options
context:
space:
mode:
Diffstat (limited to 'zettelkast/Notes/290220240843 - Value Object.md')
-rw-r--r--zettelkast/Notes/290220240843 - Value Object.md15
1 files changed, 15 insertions, 0 deletions
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