论坛首页 Java企业应用论坛

提问:使用策略模式的烦恼,要实现208个类

浏览 42080 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-23  
tianxinet 写道
楼主不能向大家提供明确需求,恐怕是没有确切的解决方案了,除非能猜测出你的“隐含需求”。
先不要管设计模式,不妨这样考虑:设计模式是设计的结果。
GOF模式就那么23种,实际模式不计其数,你设计的目标无非是一定的重用度、易于修改、易于维护。再加一个性能。
只要能做到以上几点,哪怕有200个类也是好模式(减压,放松思路)。(良好的分包、命名+一纸类索引、class mapping之类的就搞定,业务规则就有60页的东东,几页class mapping绝对值得。200个类了不起吗?

临近假期,八卦细胞暴活跃,等节后看能不能给楼主提供详细的建议。



首先不要去套用设计模式,这样会把你自己的设计思路,需求,背景等等打乱,应该按照oo设计原则,封装可变的,提取共性和可变性。在分析阶段,你可以采用下“分析矩阵”,这样在多个对象交互的时,可以提取他们的共性和可变性,更重要的是把他们的关系理解清楚。

企业人的职业种类: p1 p2 p3 p4 .......
企业工资规则    : a1 b2 c3 d4
                a1 b2 c3 d4
                a1 b2 c3 d4


不知道是否表达清楚??
0 请登录后投票
   发表时间:2006-10-31  
笔者认为algorithm 使用策略模式是合适的!在Change和Argith之间使用桥接模式。就不会出现上述208类的问题。在具体编码实现时,要用到工厂模式!下面画出主要示意图:
  • 大小: 18.7 KB
0 请登录后投票
   发表时间:2006-12-05  
我正在学习设计模式,怎么看楼主的问题跟Thinking in Patterns 中的一个例子很相像,例子中用的是Decorator。详情见:

http://java.learndiary.com/disDiaryContentAction.do?goalID=2711

Thinking in Patterns下载地址:
http://www.mindviewinc.com/downloads/TIPatterns-0.9.zip
0 请登录后投票
   发表时间:2006-12-08  
littlebat 写道
我正在学习设计模式,怎么看楼主的问题跟Thinking in Patterns 中的一个例子很相像,例子中用的是Decorator。详情见:

http://java.learndiary.com/disDiaryContentAction.do?goalID=2711

Thinking in Patterns下载地址:
http://www.mindviewinc.com/downloads/TIPatterns-0.9.zip


这应该不是Decorator的问题,这是个排列组合的问题吧,应该是对逻辑算法进行抽象 而不是确切的用户实体了
0 请登录后投票
   发表时间:2006-12-08  
直觉告诉我不是什么复杂的问题。
估计你做的系统使用单位的人员至少有20万
而且行政管理人员的数量超过10%
0 请登录后投票
   发表时间:2007-01-12  
如果每一种人员都有16种工资变化,(清洁工也会有16种),即16种是固定的话,使用 桥梁模式,如果16种不固定,比如有的只有2种,其他的有6种,使用策略模式中嵌套策略模式。至于工资由4部分组成,使用装饰模式。但这里这个问题使用模式也不能很好的解决问题,应当考虑反模式,规则引擎是比较明智的选择
0 请登录后投票
   发表时间:2007-02-07  
同意楼上的,一般这种排列组合式的都可归纳为继承或者桥接,种类少了用继承+策略模式,这样就会出现楼主说的208种;多了用桥接+策略,可以出现13 + 16个类
0 请登录后投票
   发表时间:2007-02-07  
哈哈哈,这个系统肯定是给政府/央企用的。
相信这个时候楼主已经把问题解决了。
比这个需求复杂的都有的。

不过显然楼主被自己的16*13吓坏了。16*13不一定比1大哦,呵呵。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics