program.cs

来自「这是asp.net^和Visual C++Sharp编写的串并口通讯的书籍 源代」· CS 代码 · 共 92 行

CS
92
字号
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 + =
减小字号Ctrl + -
显示快捷键?