Skip to content

ChihTsungLu/ai-article

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

1. 單一職責原則 (Single Responsibility Principle, SRP)

  • 每個類別都有明確的單一職責。例如,Validator 類別只負責驗證,CurrencyTransformer 類別只負責貨幣轉換。
  • OrderService 類別有多個方法,但它的整體職責是處理訂單相關的邏輯。

2. 開放封閉原則 (Open/Closed Principle, OCP)

  • 通過使用策略模式(如 ValidationStrategy)和命令模式(如 CurrencyTransformCommand),code 可以在不修改現有類別的情況下擴展新功能。
  • 例如可以輕易地添加新的驗證策略或貨幣轉換命令,而不需要修改現有的code。

3. 里氏替換原則 (Liskov Substitution Principle, LSP)

  • 所有的 ValidationStrategy 子類都可以替換 ValidationStrategy 基類使用,不會破壞程序的正確性。

4. 介面隔離原則 (Interface Segregation Principle, ISP)

  • ValidationStrategy 介面只有一個 validate 方法,降低系統的耦合度,

5. 依賴反轉原則 (Dependency Inversion Principle, DIP)

  • 高層模組(如 OrderService)依賴於抽象(如 ValidatorCurrencyTransformer),而不是具體實現。

設計模式

1. 策略模式 (Strategy Pattern)

  • 用於實現不同的驗證策略(NameValidationStrategy, PriceValidationStrategy 等)。

2. 命令模式 (Command Pattern)

  • 用於實現不同的貨幣轉換命令(USDToTWDCommand, TWDToTWDCommand)。

3. 依賴注入模式 (Dependency Injection Pattern)

  • 使用 FastAPI 的 Depends 功能來注入 OrderService 到 API 路由處理程序中。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published