模板设计模式

模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种:

  • 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。
  • 模版方法:由抽象类声明并加以实现。一般来说,模版方法调用抽象方法来完成主要的逻辑功能,并且,模版方法大多会定义为final类型,指明主要的逻辑功能在子类中不能被重写。
  • 钩子方法:由抽象类声明并加以实现。但是子类可以去扩展,子类可以通过扩展钩子方法来影响模版方法的逻辑。 抽象类的任务是搭建逻辑的框架,通常由经验丰富的人员编写,因为抽象类的好坏直接决定了程序是否稳定性。 实现类用来实现细节。抽象类中的模版方法正是通过实现类扩展的方法来完成业务逻辑。只要实现类中的扩展方法通过了单元测试,在模版方法正确的前提下,整体功能一般不会出现大的错误。

架构中经常使用的一种设计模式,很好的发挥了面向抽象程序设计,实现了“高类聚,低耦合”的架构思想。所以非常值得研究,学习和实践。

开篇:跑题时间

虽然要跑题也先放上几张来源于网络的PPT正示一下主题,免得一下跑题太远收不回来。

开始正式跑题了!这篇文章不想只谈技术,一半当成总结吧。话说但凡爱装逼的老码农无不一张口设计模式、AOP、IOC(DI)等名词成天挂在口上。其实技术和工作年限没有太直接的联系,你没干上架构师的活(岗位),说的吹的再顺溜也等于是无用功。我干程序员头三年是做传统的行业管理软件“酒店管理系统”,当时是使用Delphi+Oracle做的,当年“聪明的程序员”都爱用Delphi,我一拖控件就是三年,一直都是面向过程设计,非科班出身,野生程序员,所以转了C#之后又三年才开始慢慢面向对象设计和编程,但是我始终没有面向抽象编程,也不明白为啥要使用接口、抽象类。C#用了五年的样子开始学设计模式和经常重构了以为达到了“看山还是山,看水还是水”的境界,其实差老鼻子远了。现在基本上.net用了有10年了,可惜一直没有遇上大项目,一直在小作坊,小公司里打转。曾经有一次机会,团队里来了一个架构师,但当时离开了那个团队,因为新来的总监套路太多太厉害,加上我冲撞了COO,作为非正式的部门经理被迫离职。一直没有好好的进行架构设计,直到遇到现在的系统,非常佩服系统第一代的架构师,思想非常纯正,项目里也使用了模板设计模式。现在的系统架构沿用了十几年了,一直很稳定,开放性很好,导致后续两任架构师都超越不了,后来就一直没有架构师了;现在公司的岗位目标也是工控架构师,但是看了半年的公开课,系统的学习了架构师知识体系这后,我认为架构师只能是养成的。话说最近醒悟了,不是ctrl+C,ctrl+V天天都这样猛干吧,老码农得在他的岗位上提升自己的“领导力”,努力让生态越来越好。

找不到哪里看过的那张ctrl+C,ctrl+V一把梭的图了,暂时用这个代替了。因为今天第二次看“C#/.Net架构师设计模式特训【软谋教育】”的模板设计模式的公开课,虽然公开课都是重复的反复的讲那些知识,但是每看一次总是有新的心得。最近结合几次实践,越发觉得有写文加深印象的必要,于是有了此篇随笔。我的关注点是:为什么架构师这么重视这个模式,实践意义在哪里?作为一个油腻的中年大叔看来必须有点追求了,经常性的口是心非,不按套路出牌,不按计划不走寻常路...,你以为多特别其实一直很失败。本来准备写个年终总结的,但是好久都没有立长志了,一直都没按计划来。呵呵。其实是有计划的,只是实现起来是跨年的,身上背了几十万债务...好吧还是收回来,别倒苦水了。我只是说任何时候都不能有不脚踏实地的理由,应该不浮躁,每天进步一点点吧。

主题之普通方法/虚方法/抽象方法/

这是一篇没有写完的随笔,最近工作比较忙,现在想放弃了。不写了,具体案例其实另外两篇随笔已经写了,感兴趣可以看看:

http://www.cnblogs.com/datacool/p/datacool_2017_pda.html

http://www.cnblogs.com/datacool/p/datacool_2017_gdi.html

转载于:https://www.cnblogs.com/datacool/p/8216832.html

C#模板设计模式使用和学习心得相关推荐

  1. Vue学习心得记录之模板语法

    下面是我这半年以来总结的Vue学习笔记,帮助自己复习学习Vue的基本用法.有需要的同志可以参考下. Vue的模板语法 Vue有很简单的模板语法,这些Vue指令用来响应式改变渲染DOM可以快速入门上手这 ...

  2. 计算机新课标学习心得体会,【精品】新课标学习心得体会模板锦集10篇

    [精品]新课标学习心得体会模板锦集10篇 在平日里,心中难免会有一些新的想法,马上将其记录下来,这样可以记录我们的思想活动.很多人都十分头疼怎么写一篇精彩的心得体会,下面是小编收集整理的新课标学习心得 ...

  3. java 抽象类 模板_Java学习day21-抽象类(abstract class)和模板设计模式(TemplateMethod)...

    一.抽象类(abstract class) 1.随着继承层次中一个个新子类的定义,类变的越来越具体,而父类则更一般.更通用.类的设计应该保证父类和子类能够共享特征.有时需要将一个父类设计的非常抽象,以 ...

  4. html5课程总结500字,学习心得体会模板范文500字

    学习中有许许多多的快乐,如果你觉得不是,那就是你平时一定没有认真学习,认真学习的话,你会发现学习中蕴涵着无穷的快乐.下面是学习啦带来的学习心得体会范文500字,欢迎大家阅读. 学习心得体会500字范文 ...

  5. windows类书的学习心得(zz)

    现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷 ...

  6. 转贴: wolfenstein工作室-eMule源代码学习心得

    1, eMule源代码学习心得(1):eMule代码的总体风格和其它相关工程 eMule的官方首页上写着:2002年05月13日 一个叫做 Merkur 的人,他不满意原始eDonkey2000客户端 ...

  7. 计算机基础与应用(上)笔记总结,计算机基础学习心得体会范文(通用3篇)

    计算机基础学习心得体会范文(通用3篇) 当我们对人生或者事物有了新的思考时,好好地写一份心得体会,这样可以记录我们的思想活动.那么要如何写呢?以下是小编精心整理的计算机基础学习心得体会范文(通用3篇) ...

  8. java 抽象属性 设计_Java 抽象类与模板设计模式详解

    抽象类 抽象类是为了方法覆写而提供的类结构,因为其无法自身直接进行对象实例化操作,所以在实际应用中,抽象类主要目的是进行过程操作使用,当你要使用抽象类进行开发的时候,往往都是在你设计中需要解决类继承问 ...

  9. php成绩查询系统的学习心得_PHP学习心得与体会

    PHP 学习心得与体会 我想在讲述自己的学习方式前,对那些期望能从我的文 章中获得有用信息的人说一句心里话: 我的文章不会对您的学习起到实质性的作用,您能否成 功, 还得靠自己的,坚持,坚持,再坚持, ...

最新文章

  1. 关于大XML文件与大节点处理(System.Xml.XmlTextReader)
  2. 分布式锁之三:Redlock实现分布式锁
  3. jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
  4. python基础教程:ord()和chr()
  5. Django的Field(字段)
  6. 学生电脑哪个牌子好_常亮补光灯哪个牌子好服务至上
  7. python html5交互方式,python+Django(5)—回传至前端几种方式
  8. 保障健康睡眠的几种食疗法
  9. 用arcgis批量裁剪栅格(tiff)数据的矩形区域
  10. android view 前景色,Android开发中的一些小技巧
  11. 字节跳动---雀魂启动
  12. Docker报错:E: Unable to locate package python3
  13. JSON与事件和BOM
  14. 【总结】个人推荐的接口测试工具和接口性能/压力测试工具
  15. 我在华清的嵌入式课程笔记(至2020.7.5)
  16. 超赞!60种数据可视化图表使用场景及制作工具整理大全 !
  17. 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和
  18. Eclipse JavaEE版下载地址(含全球多个镜像地址)
  19. C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)
  20. c++ 多重继承,an ambiguous base of

热门文章

  1. 抽象工厂模式-与-工厂方法模式区别
  2. SharePoint 2010开发实例精选——“每日一句”WebPart
  3. 使用OleDb,将Excel导入DataSet
  4. 魔棒工具--RegionGrow算法简介
  5. 深度学习未来十大趋势
  6. Android studio下将项目代码上传至github包括更新,同步,创建依赖
  7. Spring(一)容器
  8. Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)
  9. 第三十章 elk(1) - 第一种架构(最简架构)
  10. HDU 3410 Passing the Message