[Design-Pattern] Strategy
策略模式 - Strategy Pattern 目的 : 將各種可以互換的演算法(策略)包裝成一個類別 排序策略 父類別 先宣告一個父類別 public enum Color { Black, White, Blue, Gray, Red } public class Car { public readonly int Price; public readonly Color CarColor; public Car(int price, Color color) { this.Price = price; this.CarColor = color; } public override string ToString() { return $"Price : {Price}, Color : {CarColor}"; } } 繼承 Comparer 透過繼承範型的 Comparer ,來實作排序演算法。 public class SortByColor : Comparer<Car> { public override int Compare(Car o1, Car o2) { if (o1 == null || o2 == null) throw new ArgumentNullException(); return (o1.CarColor > o2.CarColor) ? 1 : (o1.CarColor == o2.CarColor) ? 0 : -1; } } public class SortCarByPrice : Comparer<Car> { public ove...