博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大话设计模式读书笔记4——模版方法模式
阅读量:7192 次
发布时间:2019-06-29

本文共 1466 字,大约阅读时间需要 4 分钟。

模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

UML图:

 具体实现代码:

namespace TemplateMethod{    class Program    {        static void Main(string[] args)        {            AbstractClass A = new ConcreteClassA();            A.TemplateMethod();            AbstractClass B = new ConcreteClassB();            B.TemplateMethod();            Console.ReadKey();        }    }    public abstract class AbstractClass    {        public abstract void PrimitiveOperation1();        public abstract void PrimitiveOperation2();        public void TemplateMethod()        {            PrimitiveOperation1();            PrimitiveOperation2();            Console.WriteLine("");        }    }    class ConcreteClassA : AbstractClass    {        public override void PrimitiveOperation1()        {            Console.WriteLine("具体类A.方法1实现");        }        public override void PrimitiveOperation2()        {            Console.WriteLine("具体类A.方法2实现");        }    }    class ConcreteClassB : AbstractClass    {        public override void PrimitiveOperation1()        {            Console.WriteLine("具体类B.方法1实现");        }        public override void PrimitiveOperation2()        {            Console.WriteLine("具体类B.方法2实现");        }    }}

 模版方法模式的特点:

模版方法模式是通过把不变的行为搬移到父类,去除子类中的重复代码来体现它的优势。

模版方法模式就是提供了一个很好的代码复用平台。

当不变的和可变的行为在方法的子类实现中混合在一起的时候, 不变的行为就会在子类中重复出现。我们通过模版方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。

转载于:https://www.cnblogs.com/lxblog/p/4095260.html

你可能感兴趣的文章
[NOI2013]快餐店
查看>>
Linux 文件操作总结
查看>>
Chrome下的语音控制框架MyVoix.js使用篇(三)
查看>>
【iOS】UIKit框架 学习笔记
查看>>
thinkphp5 自动注册Hook机制钩子扩展
查看>>
类的多态(虚函数)
查看>>
JFreeChart入学教程
查看>>
java 放射机制简介
查看>>
Object 的方法总结
查看>>
Redis中5种数据结构的使用场景
查看>>
转:线性表的查找-顺序查找
查看>>
原创: 开题报告中摘要部分快速将一段文字插入到word的表格中
查看>>
TCP/IP协议的关系?
查看>>
rsync 参数说明及使用参数笔记好文摘抄
查看>>
UVA548 Tree (二叉树的遍历)
查看>>
礼物(BFS)
查看>>
相似基因(动态规划)
查看>>
经验小结(个人笔记)
查看>>
jq对页面元素进行排序
查看>>
安装laravel
查看>>