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