社区
分析与设计
帖子详情
到底用什么设计模式
duhongsheng
2017-11-13 11:47:18
我有一个小项目就是实验室检测这块。共有几个检测项:梅毒、丙肝、爱滋...每个项目用不同的试剂,试剂又是不同厂家的,过一阵可能又用别的厂家了,计算公式是不一样的,用什么设计模式比较好啊,头疼得狠。
...全文
838
15
打赏
收藏
到底用什么设计模式
我有一个小项目就是实验室检测这块。共有几个检测项:梅毒、丙肝、爱滋...每个项目用不同的试剂,试剂又是不同厂家的,过一阵可能又用别的厂家了,计算公式是不一样的,用什么设计模式比较好啊,头疼得狠。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
duhongsheng
2017-11-13
打赏
举报
回复
谢谢,我也是在犹豫了,刚买了本书看,这块完全不知取舍。
正怒月神
2017-11-13
打赏
举报
回复
以后增加一个试剂,也就只是增加一个实现公式的class而已,不影响整体模块就好了。 至于是策略模式,还是工厂模式。这个比较随意。
正怒月神
2017-11-13
打赏
举报
回复
如果只从你的字里行间来分析,听起来惯用的工厂模式就好啦。 public class Base { 商品名 商品价格 方法:计算公式 } public class 试剂A: base { 实现公式 } public class 试剂B: base { 实现公式 }
duhongsheng
2017-11-13
打赏
举报
回复
自顶一下,消灭零回复
duhongsheng
2017-11-13
打赏
举报
回复
一般来说会计算阴性值、阳性值、空白值、CUTOFF值等几个方法。我准备在接口里声明这几个方法,然后一个个类地实现算法。调用时调接口,就是所谓工厂模式还是简单工厂吧。到时有新的算法就加个类实现接口,不知谁有更好的想法。
duhongsheng
2017-11-13
打赏
举报
回复
算法的变化也不会说天天变。一般来说半年或一年一变,有些是通用的,这也是我当年(09)以为能找出通用方法的原因,这些年每个项目的算法也就是4种,5个项目*4共二十种算法是硬在VB中加上去的,觉得很乱。
duhongsheng
2017-11-13
打赏
举报
回复
多谢前面各位的热心帮助。 其实这个项目是我原来用VB写的,因为一直是我维护,当时我也不懂这块,以为计算公式不会变,后来慢慢变化了,是不厌其烦啊地加B算法,C算法,实在是太乱了,自己都觉得,现在是甲方愿出点钱我改版。用c#重写 情况再介一下,试剂是几个月或1个月就会换一批,中间会有不同的厂家,这样算法就不一致。我初步的想法是用接口-工厂。写一些A/B/C......等算法,一种试剂对应于一种算法,试剂是存在数据库中的一条记录,在输入时,对应于算法。 算法只能是有变化就添加(改原代码)
正怒月神
2017-11-13
打赏
举报
回复
引用 9 楼 wanghui0380 的回复:
} [quote=引用 8 楼 starfd 的回复:] 策略模式
呵呵,你试试看,有200种病毒,800种试剂,2000种监测条件,你策略给我看看,别想当然。真当只管挖坑不管埋么?[/quote] 我觉得这个还是要看楼主说的
每个项目用不同的试剂
的含义。 我觉得既然楼主说是小项目,那么不应该是混合试剂,所以不需要装饰模式。
mk_lucifer
2017-11-13
打赏
举报
回复
将算法和参数直接抽象出来,让客户编辑,你只做框架。。。 可以用数据库来解决: 厂商记录表,厂商试剂记录表,试剂记录表,项目记录表,项目测试方法记录表,总之数据多了数据库是最好的解决办法,这些记录存储相关参数。。 比如你要添加一个项目的一个新算法,则项测试方法记录表中添加一条记录,这条记录指示所属项目,所用试剂(精确到厂商),最后一条为算法脚本。。 客户想添加测试,只用添加项目测试方法记录即可(没有厂商,没有试剂记录,没有项目,自己添加),你可以通过这个记录明确体现出,这一测试需要用到的所有试剂和试剂相关测试系数,然后让客户填写,填写完成后,调用算法脚本得出结果。。。 不用数据库,也可以靠增加配置文件的方式来解决,毕竟卖出去的产品经常被客户要求改代码是不靠谱的,不如把要改的东西抽象出来,你只要把编辑器做的漂亮些,好错做写即可,至于算法脚本编辑器,我曾经我做过一个最简单的算法编辑器,Excel都用过把,按那个格式,谁都会用, A1网格里填 试剂1,A2里填试剂2,A3里填5, A4里填 =A1XA2+A3 或者 =CosA1*A2+A3等等,A5=A4*A2 结果输出到A6 填写 结果参数1=A5 结果参数2=A4 只要上过高中的不用学编程也会。。。你不可能人家改个公式加个新项目,你就改一次代码,那的累死。。。
wanghui0380
2017-11-13
打赏
举报
回复
其实整个这块不是对象化的,整个东西基于数据流 他相当于各种检测项+模式匹配 试剂不是楼上那种配合公式,试剂无关公式,试剂只是检测项。 病毒倒是跟公式挂,只是其实也不是公式,他更类似风险评测或者模式匹配。 你分析一下流程: 我怀疑你感冒了,我去专家库匹配一下感冒了应该使用那种手段去检查,然后把检查结果汇总去专家库匹配一下是否“大概率”有这个病 所以,不是说“梅毒”一个策略,这个不能用策略,如果你用策略意味着你需要一辈子去维护他,这里不该是策略,这里只需要一个消息通知一下专家库,看有多少个“指标检测"响应他,比如感冒的响应过程=量体温+验血==评测“体温+验血”结果,看是否匹配。
wanghui0380
2017-11-13
打赏
举报
回复
}
引用 8 楼 starfd 的回复:
策略模式
呵呵,你试试看,有200种病毒,800种试剂,2000种监测条件,你策略给我看看,别想当然。真当只管挖坑不管埋么?
娃都会打酱油了
2017-11-13
打赏
举报
回复
策略模式
wanghui0380
2017-11-13
打赏
举报
回复
所以你就别想啥设计模式,模式是有,他会有试剂抽象,公式抽象 但不会选择其他模式,这个设计基于数据流,而非基于对象。 所以设计模式其实(特指GOF)其实没啥用,因为GOF基于对象,不基于消息和数据流
wanghui0380
2017-11-13
打赏
举报
回复
以现有的设计来说,这种项目其实是“反模式”的,目前主流设计是 我发出一个“梅毒检查”消息,然后有一个试剂A+试剂B响应,然后有试剂A结果响应,有试剂B结果响应,有试剂A+试剂B结果响应,有后面的回归,聚类预测 设计模式是特定时期,特定环境的产物,需要区别对待,别看哪都是钉子
wanghui0380
2017-11-13
打赏
举报
回复
公式抽象,试剂抽象 装饰模式 ps:其实有前面两个就好了,至于装饰其实没必要,就设计来说,你不会每次更改就代码“装饰”一遍,如果是这样这项目也没的玩了,这种东西用配置在不更改代码的情况下能搞定,不必什么这模式,那模式
Java
设计模式
Java
设计模式
设计模式
:基于C#的工程化实现及扩展.pdf
设计模式
:基于C#的工程化实现及扩展
Android
设计模式
项目开发中发现问题、解决问题这个过程中有很多问题是重复出现或某个问题的遗留,这些问题的本质就是模式。 如果
设计模式
在编码设计生涯中用得极少,主要原因是对
设计模式
的理解还不够,认识不到问题的存在。 因为不能正确的分析问题、认识问题,当然也不可能很好的解决问题了。
设计模式
6大原则.doc
对
设计模式
六大原则的一点总结,欢迎免费下载。
阿里巴巴面试总结DOC版
阿里巴巴面试总结
分析与设计
13,190
社区成员
5,759
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章