類型名稱 | 用途說明 | 命名範例 | 設計意義 / 模式(詳細說明) |
Strategy | 定義一組可互換的演算法邏輯,使用介面抽象不同策略 | IPaymentStrategy , ILoginStrategy | 對應 策略模式(Strategy Pattern)。符合 OCP(開放封閉原則),讓演算法可以獨立演進或替換,實現動態切換邏輯。常與 DI 配合進行策略注入。 |
Provider | 提供某種功能資源或服務的實作抽象,常用於設定驅動的服務 | IAuthProvider , ConfigurationProvider | 表示「某功能的來源」概念,常見於 外部資源、第三方套件的抽象封裝。與策略模式相似,但更著重於「供應行為」與可插拔性。 |
Attribute | 裝飾類別、方法或屬性的自訂中繼資料,用於反射等機制 | AuthorizeAttribute , LogAttribute | 對應 AOP(面向切面編程) 或 元編程,使行為可透過中繼資料與反射被動態擴展,達到橫切關注點的目的,如權限、紀錄等。 |
Extensions | 擴充既有類別(通常是靜態類別 + this 修飾符) | HttpClientExtensions , StringExtensions | 實現 Decorator Pattern(擴充原型),不修改原始類別即可新增功能。促進封裝與使用者體驗,提高 API 易用性。 |
Builder | 用來逐步構建一個複雜物件的模式 | QueryBuilder , JwtTokenBuilder | 對應 建造者模式(Builder Pattern),避免建構函式過於複雜,支援鏈式呼叫與流暢接口。符合 SRP,構建與使用解耦。 |
Factory | 負責建立某類型物件的實例 | ILoggerFactory , DbContextFactory | 工廠模式(Factory Method / Abstract Factory) 的具體實踐,集中建立邏輯,對應 DIP(依賴反轉原則)。可讓類別依賴抽象,而非具體實作。 |
Service | 處理業務邏輯的類別,通常會註冊在 DI 容器中 | UserService , AuthService | 表示系統的應用邏輯層,符合分層架構。與 Controller 區分職責,通常配合 DI 與接口設計,有助於單元測試與邏輯重用。 |
Handler | 負責處理某個具體操作或事件 | LoginHandler , CommandHandler | 常見於 CQRS 與 Mediator 模式中,強調「一次一件事」,落實 SRP。可提升測試性與事件導向設計的一致性。 |
Middleware | 處理 HTTP 請求/回應管線上的一段處理邏輯 | LoggingMiddleware , JwtMiddleware | 對應 責任鏈模式(Chain of Responsibility)。每個 Middleware 負責單一處理任務,支援組合與彈性擴展。 |
Options | 用於封裝設定項,通常搭配 DI 的 IOptions pattern 使用 | JwtOptions , DatabaseOptions | 設定綁定模式(Options Pattern),可集中管理組態、提升可維護性。與 ASP.NET Core 的 DI 系統無縫整合。 |
Context | 表示某種執行上下文,常見於資料庫、工作流程、驗證等 | DbContext , AuthContext | 扮演執行環境或狀態管理角色,將相關資源封裝起來。常與 Unit of Work / Repository Pattern 搭配,維護一致性與交易控制。 |
Controller | 處理 HTTP 請求,屬於 MVC 架構的主要元件 | AccountController , HomeController | 在 MVC 模式中扮演「C(控制器)」角色。負責接收輸入並協調 Service 層處理,是 Web API 的進入點。 |
Manager | 負責管理資源或狀態的類別 | ConnectionManager , CacheManager | 無特定設計模式,但表示集中控制、維護資源(如快取、連線等)。應小心其可能違反 SRP,避免過度肥大。 |
Helper / Utils | 封裝工具性函式,非面向物件設計的一種輔助類別 | DateTimeHelper , FileUtils | 為非物件導向型的函式集合,提供快速重複使用的功能。簡單實用但應謹慎避免亂用,否則容易變成 God Class。 |
Resolver | 解決某種依賴或資源的實體 | DependencyResolver , TypeResolver | 常用於動態解析或註冊類型,如 IoC Container、GraphQL Type 解析等。具備高度靈活性與可組態性。 |
Invoker | 封裝方法呼叫的邏輯,常見於遠端呼叫或反射操作 | CommandInvoker , ApiInvoker | 表示對方法、命令或請求的統一呼叫介面。可封裝錯誤處理、重試、日誌等共通行為,實現解耦與延遲綁定。 |
Wrapper | 封裝其他物件的使用方式,使其更易於存取或整合 | HttpClientWrapper , StreamWrapper | 對應 Adapter / Decorator Pattern,用來簡化原始接口或新增額外功能,常用於第三方 API 的二次封裝。 |
Validator | 執行資料驗證邏輯,常見於 FluentValidation 等工具 | UserInputValidator , TokenValidator | 對應 驗證責任分離原則,將驗證邏輯獨立出來可重複使用與測試。常與 DI、Pipeline 行為組合使用。 |
ASP.NET - 常見類型命名規範
Loading...