策略模式后续 之 天方夜谈
小朱 17:18:35
我觉得策略模式是指把 方法列出来,然后用里面的一个或多个方法去拼装对象。 Maddish 17:19:23 我怎么理解成替换对象? Maddish 17:19:28 相互交替? 小朱 17:31:02 对 小朱 17:31:34 将具体实现延迟到子类中实现,那个是什么模式去了? Maddish 17:33:42 本文出自 51CTO.COM技术博客工厂这几天我正在看 Maddish 17:33:57 工厂方法不算模式的一种 却只是一个编程习惯 小朱 17:35:12 模式就是大家都比较认可的、便于交流和学习的一些设计方法。 Maddish 17:35:32 但是你必须知道每个模式的核心。 Maddish 17:35:39 比如策略模式 他是交替对象的 Maddish 17:35:58 你要有这个意识 然后参考着 Maddish 17:36:02 设计。 Maddish 17:36:35 你想 每个武器都可以相互替换 不同的角色。。 对武器的扩展 和角色的扩展 和调用 都达到了很好的效果 Maddish 17:37:12 无论什么角色使用什么武器 在操作的时候你可以随意调用对象 我觉得这就是策略模式的精髓 小朱 17:37:13 但是有一点你要知道,法师用法杖,山丘不能用 Maddish 17:37:28 这只是一个比方。。。 Maddish 17:37:38 假设我们把武器换成4个算法 Maddish 17:37:59 角色换成了调用的规则 这样的话套上去 就应该是了 小朱 17:37:59 而且我觉得这个的粒度在方法,不在对象。 Maddish 17:38:23 他只是把行为的方法当成了对象 Maddish 17:39:18 而且做到了针对超类型编程 Maddish 17:39:23 也就是针对接口编程 小朱 17:39:57 哈哈,先问下你这个是面向对象还是面向业务的? Maddish 17:40:39 在武器内的绘画 其实就是不同的算法 分别封装起来 让他们可以互相替换 让算法的变化独立于使用算法的对象 Maddish 17:40:49 面向接口 Maddish 17:40:54 其实就是面向对象 Maddish 17:40:58 应该是这么说的 Maddish 17:42:19 封装 继承 多态 抽象 这些只是OO的基础 Maddish 17:42:40 而设计模式就是别人的经验 你看完后对这样的设计要有这样的意识 Maddish 17:43:14 做到了业务跟着程序走 而不是 程序跟着业务走 因为我们的开始都在面向实现编程。 Maddish 17:43:16 - -。 小朱 17:43:50 你入魔了。 Maddish 17:44:03 MaddishMaddishMaddishMaddishMaddish Maddish 17:45:26 我们必须做到 程序具有弹性的设计 维护 可以应付变化 Maddish 17:45:36 这样才叫程序 Maddish 17:46:13 而每个设计模式都有些原则 在编写的时候多想想这些原则 会有帮助 Maddish 17:46:53 而策略模式讲了一个重点 那就是 多用组合 少用继承 Maddish 17:47:10 哎 我看一个模式就看了1个月 我不入魔才怪。 小朱 17:50:32 你用这种心态去看: 一、设计模式是为了利于程序员之间交流 二、借鉴前人已有经验,构建更健硕的程序 孙老大的话:“不要为了套模式而用模式” Maddish 17:50:52 是啊 但是每个模式会有设计原则 Maddish 17:50:57 而不是使用模式。 小朱 17:51:35 我们已经用过很多的模式,只是没有归纳总结。 Maddish 17:51:41 比如说 针对接口编程 也不是针对实现编程。。 Maddish 17:51:53 多用组合 少用继承 Maddish 17:52:24 找出应用中可能需要变化之处 把他们独立出来 不要和那些不需要变化的代码混在一起。 Maddish 17:52:47 这是策略模式的设计原则。 ------------------------------------------------------------------- 以上是我和同事之间的探讨。 希望您能有自己的理解顺便也告诉下小弟吧。 一起加入探讨之中。 共同学习进步。 |



maddish
博客统计信息
热门文章
最新评论
友情链接
