
设计模式
MXHKKK
这个作者很懒,什么都没留下…
展开
-
用Factory来创建对象(Java篇)
用Factory来创建对象(Java篇)最简单的对象只有一个无参的构造方法,我们可以轻松new出一个对象。当构造方法不能满足当前创建需要时,我们会为对象增加构造方法,这时我们想new出一个对象,就要考虑使用哪个构造方法了。当有多个构造方法时,我们可以找出构造方法之间的关系,用参数少的构造方法来调用参数多的构造方法,通过内联方法来重构代码。当一个类的构造方法过多时会造成混乱,因为Java类的构...原创 2018-09-05 19:51:52 · 1465 阅读 · 0 评论 -
浅谈Builder模式(Java篇)
浅谈Builder模式(Java篇)Factory主要通过选择构造方法来创建合适的对象,而Builder负责更复杂的创建行为,比如设置对象的属性。一个简单的JavaBean,只有get、set方法,我们可以使用它的构造方法或是一系列的set方法来创建它,但它的字段过多时,这样创建就很麻烦,这时我们就可以使用Builder来封装它的创建过程。我认为Builder就是对类复杂创建行为的封装,...原创 2018-09-05 20:12:55 · 1033 阅读 · 0 评论 -
去除多余的Singleton(Java篇)
去除多余的Singleton(Java篇)Singleton简单、实用,学过设计模式的我们都可以轻松的使用Singleton模式来创建单例,并提供它的全局访问方法。使用Singleton时,我们往往只注重它的单一性,而忽视了它的可见性,Singleton相当于一个全局变量,过多的全局变量会使人害怕。当一个对象在多处使用时,注意我所说的多处而不是全局,我宁愿把对象引用当作参数传来传去,也不...原创 2018-09-05 20:36:43 · 276 阅读 · 0 评论 -
重构实现Command模式
重构实现Command模式一个简单的场景描述请求者发送请求,接受者接收请求,并作出响应,这有点类似于Web中的get和post等请求。一般,我们会使用条件判断语句来处理请求,if请求类型为这个,就执行这个方法,else if请求类型为那个,就执行那个方法,这种做法的一大优点是简单、直观。使用条件语句处理可能带来的问题当处理请求的种类太多时,需要使用大量的if el...原创 2018-09-10 20:32:08 · 142 阅读 · 0 评论 -
组合方法
组合方法在面向对象的编码中,我们更倾向于使用小方法,并用小方法来组合成另一个小方法,组合而成的这个方法就被称为组合方法。我觉得组合方法也可以当做动词来理解,这里就不赘述了。这也算是一种模式,一种简单得被人嘲笑的模式。那我们应该如何组合,才能使代码结构更清晰,更易理解呢?绝大多数实现组合方法的重构都涉及到提炼函数、方法内联化重构。在编码中,我们也许会遇到一些大方法,行数有几十行之多(一个方法的代...原创 2018-09-18 09:38:34 · 1206 阅读 · 0 评论 -
多分派技术及其应用——访问者模式
多分派技术及其应用——访问者模式分派是什么分派就是在调用一个方法(把调用方法看成是一个请求)时,确定请求接收者以及确定要执行哪段代码的问题。乍看起来,这个解释很蠢(调用哪个方法不就是执行哪个方法的代码吗?),思考之后却有道理。比如:class Show { public void print(Integer i) { System.out.println(i); } public...原创 2018-10-13 11:35:37 · 260 阅读 · 0 评论