首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >制定规则和结果的适当设计模式

制定规则和结果的适当设计模式
EN

Software Engineering用户
提问于 2019-09-12 00:01:41
回答 1查看 121关注 0票数 1

在锻炼中,我正在开发贝娄,我采用的是责任链模式。这个模式是正确的,但我不认为这是最好的方法。我认为规则设计模式应该更适合,但是S没有太多关于使用python的好例子。

我要问你的问题是:

  1. 你认为这可以用其他模式来完成吗?
  2. 这种责任链模式是否可以接受?
  3. 我是否应该学习规则设计(如果有必要的话,用其他语言)来应用于python?

这项运动的内容如下:

建议您的病人有健康状况,如:

  1. F:发烧
  2. H:健康
  3. D:糖尿病
  4. T:结核病

在这个运动药物是提供给所有的病人。这是不可能的目标一个特定的病人。以下是可用药物清单:

  1. As:阿司匹林
  2. 安:抗生素
  3. 胰岛素
  4. 对乙酰氨基酚

药物可以改变病人的状态。他们可以治愈,造成副作用,甚至杀死病人,如果没有适当的处方。药物的作用由以下规则描述:

  1. 阿司匹林治疗发热;
  2. 抗生素治疗;结核病;
  3. 没有接受正确药物的病人仍然生病,如果没有另有明确说明的话;
  4. 胰岛素预防糖尿病患者死亡,不治疗糖尿病;
  5. 如果胰岛素和抗生素混合在一起,健康的人就会发烧;
  6. 扑热息痛治疗发热;
  7. 扑热息痛如果与阿司匹林混合,会杀死受试者;

输入

参数1

病人健康状况代码列表,用逗号分隔。例如:“D,F,F”意味着我们有3名病人,1名糖尿病患者,2名发烧患者。

参数2

由逗号分隔的毒品代码列表,例如:“As,I”指的是用阿司匹林和胰岛素治疗病人。

输出

结果应该发送到stdout。它应该是一个逗号分隔的字符串,有一个给定状态的病人数,格式如下: F:NP,H:NP,D:NP,T:NP,X:NP (NP:人数)

EN

回答 1

Software Engineering用户

发布于 2019-09-12 13:44:05

我认为规则设计模式在这里是可行的。您需要的是一个耐心状态的模型,它不关心规则的应用顺序。

例如,如果你在处理导致发烧的规则之前先处理阿司匹林治疗发烧的规则,那么你最终会在不该发烧的时候发烧。

因此,与其将发热分为两种状态(发烧/无发热),不如将其建模为是否已被捕获,是否已治愈。

然后,只有在所有其他规则得到应用之后,你才能评估病人是否发烧。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/398289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档