using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TemplateMethodPattern { /// /// 组装电脑 /// public abstract class AssembleComputer { /// /// 组装主机 /// public abstract void BuildMainFramePart(); /// /// 组装显示器 /// public abstract void BuildScreenPart(); /// /// 组装输入设备(键鼠) /// public abstract void BuildInputPart(); /// /// 组装起来 /// public void Assemble() { BuildMainFramePart(); BuildScreenPart(); BuildInputPart(); } } /// /// 组装HP电脑 /// public class AssembleHpComputer : AssembleComputer { public override void BuildMainFramePart() { Console.WriteLine("组装HP电脑的主板"); } public override void BuildScreenPart() { Console.WriteLine("组装HP电脑的显示器"); } public override void BuildInputPart() { Console.WriteLine("组装HP电脑的键盘鼠标"); } } /// /// 组装HP电脑 /// public class AssembleDellComputer : AssembleComputer { public override void BuildMainFramePart() { Console.WriteLine("组装Dell电脑的主板"); } public override void BuildScreenPart() { Console.WriteLine("组装Dell电脑的显示器"); } public override void BuildInputPart() { Console.WriteLine("组装Dell电脑的键盘鼠标"); } } }