- 每個類別都有明確的單一職責。例如,
Validator
類別只負責驗證,CurrencyTransformer
類別只負責貨幣轉換。 OrderService
類別有多個方法,但它的整體職責是處理訂單相關的邏輯。
- 通過使用策略模式(如
ValidationStrategy
)和命令模式(如CurrencyTransformCommand
),code 可以在不修改現有類別的情況下擴展新功能。 - 例如可以輕易地添加新的驗證策略或貨幣轉換命令,而不需要修改現有的code。
- 所有的
ValidationStrategy
子類都可以替換ValidationStrategy
基類使用,不會破壞程序的正確性。
ValidationStrategy
介面只有一個validate
方法,降低系統的耦合度,
- 高層模組(如
OrderService
)依賴於抽象(如Validator
和CurrencyTransformer
),而不是具體實現。
- 用於實現不同的驗證策略(
NameValidationStrategy
,PriceValidationStrategy
等)。
- 用於實現不同的貨幣轉換命令(
USDToTWDCommand
,TWDToTWDCommand
)。
- 使用 FastAPI 的
Depends
功能來注入OrderService
到 API 路由處理程序中。