@startuml class Program{ + static void Main(string[] args) } abstract class SortStrategy { + <> void Sort(List list); } class QuickSort extends SortStrategy { + <> void Sort(List list) } class ShellSort extends SortStrategy { + <> void Sort(List list) } class MergeSort extends SortStrategy { + <> void Sort(List list) } class SortedList { - List list = new List(); - SortStrategy sortstrategy; + void SetSortStrategy(SortStrategy sortstrategy) + void Add(string name) + void Sort() } Program -l-> SortedList SortedList "1..*" o--> "1" SortStrategy @enduml