翻译设计模板 C#设计模式系列:模板方法模式(Template Method)
日期:2023-03-11 12:39:36 / 人气: 496 / 发布者:成都翻译公司
在软件系统中,将多个类的共有内容提取到一个模板中的思想便是模板方法模式的思想。2、模板方法模式结构3、模板方法模式结构实现4、模板方法模式应用分析模板方法模式特点:当你去银行取钱时翻译设计模板,银行会给你一张取款单。此提款表是一个模板。它将公共内容提取到模板中,只留下一部分供用户填写。 在软件系统中,将多个类的公共内容提取到模板中的思想就是模板方法的思想图案。
模板方法模式是一种基于继承的代码复用的基本技术。在模板方法模式中,相同的代码可以放在父类中,不同的方法实现可以放在不同的子类中。
在模板方法模式下,需要准备一个抽象类,以具体方法和具体构造函数的形式实现部分逻辑,然后声明一些抽象方法,让子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法。
1.1>,定义
定义运行中算法的框架并将这些步骤推迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。
1.2>、使用频率
中等的
2、模板方法模式结构
2.1>、结构图
2.2>, 参与者
模板方法模式的参与者:
◊ AbstractClass:定义一个模板,其子类将重新定义 PrimitiveOperation1 和 PrimitiveOperation2 操作。
◊ ConcreteClass:实现PrimitiveOperation1和PrimitiveOperation2,完成算法中与具体子类(Client)相关的内容。
在模板方法模式下,AbstractClass中的TemplateMethod提供了一个标准模板翻译设计模板,其中包含两个方法,PrimitiveOperation1和PrimitiveOperation2。这两种方法的内容可以由Client根据自己的需要改写。
3、 模板方法模式结构实现
抽象类.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignPatterns.TemplateMethodPattern.Structural { public abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); ////// The "Template method" /// public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } } }
具体类A.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignPatterns.TemplateMethodPattern.Structural { public class ConcreteClassA : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("ConcreteClassA.PrimitiveOperation1()"); } public override void PrimitiveOperation2() { Console.WriteLine("ConcreteClassA.PrimitiveOperation2()"); } } }
具体类B.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignPatterns.TemplateMethodPattern.Structural { public class ConcreteClassB : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("ConcreteClassB.PrimitiveOperation1()"); } public override void PrimitiveOperation2() { Console.WriteLine("ConcreteClassB.PrimitiveOperation2()"); } } }
程序.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using DesignPatterns.TemplateMethodPattern.Structural; namespace DesignPatterns.TemplateMethodPattern { class Program { static void Main(string[] args) { AbstractClass aA = new ConcreteClassA(); aA.TemplateMethod(); AbstractClass aB = new ConcreteClassB(); aB.TemplateMethod(); } } }
运行输出:
ConcreteClassA.PrimitiveOperation1()
ConcreteClassA.PrimitiveOperation2()
ConcreteClassB.PrimitiveOperation1()
ConcreteClassB.PrimitiveOperation2()
请按任意键继续. . .
4、模板方法模式的应用分析
模板方法模式的应用情况:
◊ 一次性实现算法的不变部分,将可变行为留给子类来实现。
◊ 应将每个子类中的共同行为提取出来并集中到一个共同的父类中,以避免代码重复。
◊ 控制子类扩展。模板方法只允许在特定点扩展,而模板部分是稳定的。
模板方法模式的特点:
◊ TemplateMethod 模式是一种非常基础的设计模式,在面向对象系统中被广泛使用。它使用*简洁的机制(基本、多态)为众多应用框架提供灵活的扩展点,是代码复用的基本实现结构。
◊ 在具体实现上,TemplateMethod调用的虚方法可以有实现也可以没有实现(抽象方法或虚方法)。但一般建议将它们设置为受保护的方法,以便只有子类可以访问它们。
◊ 模板方法模式通过扩展子类来增加新的行为,符合“开闭原则”。
相关阅读Relate
热门文章 Recent
- 建筑合同中英文翻译模板 土地租赁合同书翻译公司土地租赁合同翻译模板中英文样本上海合同翻译公司2023-03-11
- 新西兰驾证证翻译件模板 看过来 海外驾照转换新西兰驾照实行新变更2023-03-11
- 越南护照翻译公证模板 留学护照翻译难吗,哪家公司提供正规护照翻译?2023-03-11
- 银行流水单纳税证明翻译模板 银行流水对账单英文翻译2023-03-11
- 英语4级作文模板带翻译 2018年6月英语四级作文模板:表示阐述名言或主题2023-03-11
- 护照里的注意事项翻译模板 上海翻译公司如何翻译护照?2023-03-11
- 英国签证宁波房产证翻译模板 英签要点及拒签分析2023-03-11
- 网站模板翻译 提货单中英文翻译模板2023-03-11
- 高中英语感谢信中间模板带翻译 英语感谢信范文带翻译2023-03-11
- 司法考试证书翻译模板 以下是本科生出国留学各类证书的英文翻译模板,对应后2023-03-11


