贵阳企业免费建站,网站设计标注图怎么做,网页设计培训学费多少,技术策略模式#xff08;Strategy#xff09;#xff1a;定义一系列的算法#xff0c;将每一个算法封装起来#xff0c;并且使它们可以相互替换。
首先#xff0c;定义一个接口ISortStrategy#xff0c;表示排序算法的策略#xff1a; public interface ISortStrategy
{…策略模式Strategy定义一系列的算法将每一个算法封装起来并且使它们可以相互替换。
首先定义一个接口ISortStrategy表示排序算法的策略 public interface ISortStrategy
{ void Sort(Listint list);
}
然后定义几种不同的排序策略类这些类实现了ISortStrategy接口
//也可以将方法写在一个类中
public class BubbleSortStrategy : ISortStrategy
{ public void Sort(Listint list)
{ Console.WriteLine(Sorting using Bubble Sort); // 实现冒泡排序算法 // ... }
} public class QuickSortStrategy : ISortStrategy
{ public void Sort(Listint list)
{ Console.WriteLine(Sorting using Quick Sort); // 实现快速排序算法 // ... }
}
接着定义一个上下文类Context它持有一个排序策略对象
public class Context
{ private ISortStrategy _sortStrategy; public ISortStrategy SortStrategy { get { return _sortStrategy; } set { _sortStrategy value; } } public Context(ISortStrategy sortStrategy) { _sortStrategy sortStrategy; } public void Sort(Listint list) { _sortStrategy.Sort(list); }
}
最后创建一个客户端程序来使用这些类
public class ClientProgram
{ public static void Main(string[] args) { Context context new Context(new QuickSortStrategy()); // 创建Context并设置初始排序策略为QuickSortStrategy Listint numbers new Listint { 5, 2, 9, 1, 5, 6 }; // 需要排序的数字列表 context.Sort(numbers); // 调用Sort方法来执行排序该方法会触发排序算法的执行。 }
}