设计模式之我见--7 模板方法模式
在开发的过程中到了后期的时候,我们可能都会遇到代码的修改问题,如果一个设计良好的程序,改动量会很小,否则会很麻烦。在开发过程中有一条原则DRY原则,Don't Repeat Yourself。这个意思我的理解就是在开发的过程中尽量使相同的代码,出现在一个地方,不要使相同的代码出现在不同的地方,尽量减少重复的代码,这样我们修改的时候也会比较简单了。在程序中如果过多的使用复制粘贴,会使后面的开发变得十分麻烦。
模板方法可以很好的解决这列问题,模板方法模式定义一个操做中的算法的骨架,而将一个步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构可以重新定义该算法某些特定的步骤。模板方法模式通过把不变的行为搬到超类,去除子类中的重复代码来体现它的优势。模板方法模式就是提供了一个很好的代码的复用平台。当我们碰到这样的情况,当不变的和可变的行为在方法子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。通过模板方法模式把这些行为搬到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。
下面举例说明一下。我们在做试卷的时候所有的试卷内容都是一样的,只是答案不一样,如果我们将这些题目,都在自己的子类中复制一份,那么很可能出错。如果题目一变,我们所有的程序都要改变。我们这时候就可以使用模板方法。
类图:
代码:
TestPageA1. 在C#中,下列( )是正确的变量名称。A. public B. _123 C. 9int D. ~bool 答案:B2.类中某属性仅有get访问器,则该属性为()。A. 只读属性 B. 只写属性 C. 读写属性 D. 不可读不可写的属性答案:A3. 下列选项中,()是引用类型。A.enum类型 B. struct类型 C. string类型 D. int类型 答案:CTestPageB1. 在C#中,下列( )是正确的变量名称。A. public B. _123 C. 9int D. ~bool 答案:B2.类中某属性仅有get访问器,则该属性为()。A. 只读属性 B. 只写属性 C. 读写属性 D. 不可读不可写的属性答案:B3. 下列选项中,()是引用类型。A.enum类型 B. struct类型 C. string类型 D. int类型 答案:C
所写的都是自己的理解,如果哪里错误,还请指出。