码迷,mamicode.com
首页 > 其他好文 > 详细

我的设计模式:从模版设计模式谈到建造者模式

时间:2017-12-01 13:39:02      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:模版设计模式   建造者模式   导演模式   

1.模版设计模式  TemplateMethod Pattern

问题:创建模型,如何处理更好?有共性有异性,共性放在哪里(abstract)?异性放在哪里(实现)?


      缺陷:暴露方法好吗?protected保护起来    方法不会被子类继承修改final更好


概念:模版中的方法(抽象方法、具体方法、钩子方法)


模版模式:重写父类的方法,再调用父类的方法产生不同的结果

具体方法一般体现在调用其他方法的顺序上

模版模式一定是继承来的




2.建造者模式  Builder Pattern

问题升级:继续添加模型,可扩展性有保障吗(继续继承抽象类不就好了,好吗?)?模版模式中的顺序可自由调换就更好了,如何实现呢(顺序如何设置呢?烦烦烦)?

在哪里对类确认模型的顺序呢? 方案1:main方法中(调用的时候,好傻啊)    方案2:每个模版实现类中(自称为自导自演,有啥问题呢?)   方案3:把顺序分离出来

建造者模式就是方案3   导演层


增加一个模型需要增加的东东:Model的实现类,Builder的一个实现类,Director增加一个Builder的引用,Buidler创建Model,设置Model的执行顺序,Model执行


建造者模式使用的场景:产品类非常的复杂,或者产品类中的调用顺序不同产生了不同的结果,这个时候使用建造者模式是非常合适


导演只关注每个演员上场的顺序,建造者模式是对模型方法的封装(方法的执行以及执行顺序)



我的设计模式:从模版设计模式谈到建造者模式

标签:模版设计模式   建造者模式   导演模式   

原文地址:http://blog.51cto.com/13496382/2046358

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!