doc.dev1x.org

Model周りの概念整理

Model

ドメインモデル

@dataclass
class User:
    name: str
    age: int

ドメインモデルに含まれるもの

Value Object

class Price:
    def __init__(self, price):
        self._price = price

    @property
    def value(self):
        return self._price

if __name__=='__main__':
    p = Price(100)
    print(p.value)     # <= 100

Enum

from enum import Enum

class Color(Enum):
    RED =   1
    GREEN = 2
    BLUE =  3

Entity

ドメインモデルに含まれないもの

DBのテーブル

フォームやAPIから入力

ドメインモデルではないもの

DBのテーブル

O/Rマッパーのクラス