锁定老帖子 主题:提问:使用策略模式的烦恼,要实现208个类
精华帖 (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 不知道是否表达清楚?? |
|
返回顶楼 | |
发表时间:2006-10-31
笔者认为algorithm 使用策略模式是合适的!在Change和Argith之间使用桥接模式。就不会出现上述208类的问题。在具体编码实现时,要用到工厂模式!下面画出主要示意图:
|
|
返回顶楼 | |
发表时间: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 |
|
返回顶楼 | |
发表时间: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的问题,这是个排列组合的问题吧,应该是对逻辑算法进行抽象 而不是确切的用户实体了 |
|
返回顶楼 | |
发表时间:2006-12-08
直觉告诉我不是什么复杂的问题。
估计你做的系统使用单位的人员至少有20万 而且行政管理人员的数量超过10% |
|
返回顶楼 | |
发表时间:2007-01-12
如果每一种人员都有16种工资变化,(清洁工也会有16种),即16种是固定的话,使用 桥梁模式,如果16种不固定,比如有的只有2种,其他的有6种,使用策略模式中嵌套策略模式。至于工资由4部分组成,使用装饰模式。但这里这个问题使用模式也不能很好的解决问题,应当考虑反模式,规则引擎是比较明智的选择
|
|
返回顶楼 | |
发表时间:2007-02-07
同意楼上的,一般这种排列组合式的都可归纳为继承或者桥接,种类少了用继承+策略模式,这样就会出现楼主说的208种;多了用桥接+策略,可以出现13 + 16个类
|
|
返回顶楼 | |
发表时间:2007-02-07
哈哈哈,这个系统肯定是给政府/央企用的。
相信这个时候楼主已经把问题解决了。 比这个需求复杂的都有的。 不过显然楼主被自己的16*13吓坏了。16*13不一定比1大哦,呵呵。 |
|
返回顶楼 | |