📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace _1
{
// 策略,抽象类
abstract class SortStrategy
{
// Methods
abstract public void Sort(ArrayList list);
}
// 具体策略
class QuickSort : SortStrategy
{
// Methods
public override void Sort(ArrayList list)
{
list.Sort();
Console.WriteLine("分类排序");
}
}
// 具体策略
class ShellSort : SortStrategy
{
// Methods
public override void Sort(ArrayList list)
{
//list.ShellSort();
Console.WriteLine("ShellSorted list ");
}
}
// 具体策略
class MergeSort : SortStrategy
{
// Methods
public override void Sort(ArrayList list)
{
//list.MergeSort();
Console.WriteLine("MergeSorted list ");
}
}
// 策略模式的关系
class SortedList
{
private ArrayList list = new ArrayList();
private SortStrategy sortstrategy;
public void SetSortStrategy(SortStrategy sortstrategy)
{
this.sortstrategy = sortstrategy;
}
public void Sort()
{
sortstrategy.Sort(list);
}
public void Add(string name)
{
list.Add(name);
}
public void Display()
{
foreach (string name in list)
Console.WriteLine(" " + name);
}
}
public class StrategyApp
{
public static void Main(string[] args)
{
SortedList studentRecords = new SortedList();
studentRecords.Add("A");
studentRecords.Add("AC");
studentRecords.Add("AB");
studentRecords.Add("C");
studentRecords.Add("B");
studentRecords.Add("张三");
studentRecords.Add("李四");
studentRecords.Add("安六");
studentRecords.Add("王五");
studentRecords.Add("赵二");
studentRecords.SetSortStrategy(new QuickSort());
studentRecords.Sort();
studentRecords.Display();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -