注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 一个黑客与一个电脑白痴的..
 帮助

策略模式后续 之 天方夜谈


2008-07-02 18:00:03
 标签:设计模式 策略    [推送到技术圈]

小朱 17:18:35
我觉得策略模式是指把 方法列出来,然后用里面的一个或多个方法去拼装对象。
    Maddish 17:19:23
我怎么理解成替换对象?
 
     Maddish 17:19:28
相互交替?
 
小朱 17:31:02

小朱 17:31:34
将具体实现延迟到子类中实现,那个是什么模式去了?
     Maddish 17:33:42
工厂这几天我正在看
 
     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
这是策略模式的设计原则。 
 
-------------------------------------------------------------------
以上是我和同事之间的探讨。
希望您能有自己的理解顺便也告诉下小弟吧。
一起加入探讨之中。
共同学习进步。




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: