【设计模式】 您所在的位置:网站首页 模板匹配理论与原型匹配理论的异同之处 【设计模式】

【设计模式】

2024-01-14 02:29| 来源: 网络整理| 查看: 265

    不知道何种原因总是把原型模式和模板方法模式搞混,着实很苦恼啊!不知道大家是否有同样的困扰,有的话治疗,没有的话预防啊。故该文章进行详细对比学习!

原型模式

    所谓的原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    解释:从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。应该注意概念中的拷贝两个字,这是原型模式的精髓所在。原型模式实行的关键就是clone函数。

    例子:简历复制,之前没有复印机的时候,完全手写,需要写很多份重复的简历,如果简历有错,改起来也是相当费劲了。后来有了打印机,在出现简历错误,只需要改一份,之后再复印的内容就是正确的了。无论是手抄还是复印,在执行这些方法的时候肯定之前有一份原始的初稿,故这个可以理解为原型模式。

       

   重点提示:想要改变通过原型模式继承实现具体原型类中的内容必须改变抽象类中的内容才可以。

模板方法模式

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

    解释:在做程序的过程中,会用到继承,就要继承做的更有价值,成为子类的模板,所有重复的代码都应该上升到父类中,而不是让每个子类都去重复。当我们要完成某一个细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,用到模板方法模式,将不同的地方转移到子类中,在需要的时候进行重新定义。

    例子:同样上面的简历问题,大部分人不可能一生就一个固定的工作,所以在写简历的过程注定有一栏是工作经历。可是每一次工作经历大概相同,无非就是入职年份,任期工作内容,离职时间。但是具体的内容又不一样,随着不断的求职,这个随之改变,不能每一次求职都重写一份原型吧。这个时候可以用到模板方法模式。把工作经历中大概流程放到抽象类中,把具体的内容填写到子类中。这样在抽象类中定义一个操作算法的骨架,将具体的步骤延迟到子类中。

   

【总结】

     个人感觉两者最大的区别就是原型模式改动的时必须改动根部才可以;而模板方法模式,需要改变子类中的就行。当然两者的作用范围不一样啊。模板方法模式更偏向于操作算法结构,而原型模式则适用于整体范围。在学习的时候感觉两者特别像,这过程中一直混淆者,真正的踏下心分析的时候真的,这都不是事!所以面对不同的问题,一种方法不会改变,踏实研究做!

    本人菜鸟一只,个人看法,如有不正确之处,还有希望大神们不惜赐教,定当不胜感激!

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有