[料理秘方] 設計模式的解析與活用

入手「設計模式的解析與活用」這本書,開啟我對 Design Pattern 的另一層想像。

軟體開發過程中的視角

  • 概念
  • 規約
  • 實作

物件導向設計策略

  • 依介面程式設計 (design to interface, DIP)
  • 儘量用聚合代替繼承
  • 找出變化並封裝之

在建立物件時使用共通性和可變性分析

CVA 方式

  • 先尋找共通性
  • 從這些共通性建立抽象
  • 從共通性的變化尋找衍生
  • 看共通性之間的關係如何

一個規則一次實作

物件是具有責任的一個實體 (SRP)

封裝應該被視為「任何形式的隱藏」

思考背景時使用的一條規則「先考慮系統中需要什麼 (模式),然後再去關注如何建立它們。」

抽象類別和介面之間的一個差別,就是抽象類別允許有公共的狀態和行為。

為了如此使用介面,在設計時應該問的是:「這些東西如果要以相同的方式使用,必須都有什麼樣的公共介面?」

裝飾者模式:將一個已有單一職責的物件,動態地加諸其他責任來擴充功能

命令模式的更多用途:佇列請求、日誌請求。

樣板方法模式:封裝一個演算法在一個方法裡,但演算法內的某些步驟需要次類別來實作。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學