浏览 4707 次
锁定老帖子 主题:探讨一个比较复杂的算法,设计模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-03
移到右树中. a:左树节点中,有两个属性:instanceType , deploynodeType instanceType 有三个枚举值:1(单实例单节点), 2(多实例), 3(单系统单实例) deploynodeType有四个枚举值:1(只能部署到主服务器),2(只能部署到从服务器),3(任意类型的服务 器).4(每他服务器必须都要有) b:右树节点:存在的多个服务器类型.主服务器只有一个,从服务器有多个. 详细说明一下instanceType : 1: (单实例单节点)每个服务器只能部署一次 2: (多实例).任意服务器都可以部署 3: (单系统单实例).所有服务器中总共只能部署一次 左树:待部署的节点. 从左树节点移动到右树节点时,对服务器类型的节点选中才会判断. 中间的实现从左到右的移动,希望不要出现一堆的if-else. 不然也不叫设计模式了. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-07-05
不是所有的工作都要设计模式来做
设计模式里也未必不会出现if else |
|
返回顶楼 | |
发表时间:2011-07-05
桥接模式?
|
|
返回顶楼 | |
发表时间:2011-07-05
不知道可不可以这样:
1:抽取出固定算法 2:根据不同参数,由固定算法计算是终结果是否为:true/false 3:根据true/false来决定是否移动节点。 instanceType : 1,2,3 deploynodeType: 100,200,300(把间隔拉开,以便不同组合值不会重复) 两属性和的不同组全为:101,102,103, 201,202,203, 301,302,303 假设:服务器类型值:仅选中主服务器为:100, 仅选中从服务器为:200, 即选中主又选中从:300 选中数目值: 选中一个为:1,选中多个为:2,其它(单系统单实例不知怎么说):3 那么算法可以抽取为: 服务器类型值 + 选中数目值 与 两属性之和 比较 方法: boolean canMove(两属性之各,选中的服务器类型值,选中服务器的数目值){ return (服务器类型值 + 选中数目值) < 两属性之各; } 上面只是说明原理,可能算法并不正确。仅供参考。 |
|
返回顶楼 | |
发表时间:2011-07-05
最后修改:2011-07-11
1.定义一个接口,接口中1个方法(将结点移动到右树,可能需要copy结点,这个由具体实现类决定) |
|
返回顶楼 | |
发表时间:2011-07-05
始终认为设计模式只是用来更好的组织代码,减少重复代码、把逻辑和功能去耦用的
|
|
返回顶楼 | |
发表时间:2011-07-06
状态模式可以去掉过量的if else
|
|
返回顶楼 | |