Thinking in GOF
被天上的包子砸晕
非常菜的菜鸟
展开
-
Strategy策略设计模式(十八)
思路 在开发中,我们会遇到多个算法或者策略,来实现不同的行为。我们根据环境和需求要实现不同的策略活着好算法。比如说,对对象的排序,一个对象有多个属性,我们定义一个算法,根据这个对象的某个属性来排序,假如有一天需求变更,根据这个属性的另外一个属性来排序。那么我们可能我们设计好的算法也要进行变更,这显然扩展性不好,不利于维护。 策略 在实际开发中,我们需要把算法和对象分开来。让对象自身具备某个比原创 2017-07-03 18:52:31 · 395 阅读 · 0 评论 -
拦截器链模式(责任链)
上图总结 责任链模式,给人的感觉像JVM的栈,先进后出,一系列的拦截器链,先按照顺序执行完毕,可以执行我们自定义的Action,在通过链的模式,始终不然先执行filter完成整个流程,一直循环每一个filter,直到最后一个filter执行完毕后返回,才依次执行上一个filter,一直完毕,整个流程完毕,巧妙的结合。 与Struts2的interceptor stack相似,也是采用类似的原创 2017-07-09 00:01:51 · 678 阅读 · 0 评论 -
容器Iterator设计模式
遍历内容 23种设计模式之一,行为模式之一,主要用在容器遍历中。返回一个iterator即可遍历对象 优缺点 一般来说,容器的自动的增删改由容器本身确定,而去实现遍历,第一种:有容器本身决定,第二种:由调用者决定。这样虽然都可以实现遍历,但是容易引起程序的混淆,一旦添加或者删除容器也要保存遍历状态,容易出错 把容器的遍历交给一个Iterator来做,屏蔽聚合对象中的容器实现细节,按原创 2017-07-03 15:40:09 · 349 阅读 · 0 评论