-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.bed 修正注释 #35
base: master
Are you sure you want to change the base?
1.bed 修正注释 #35
Conversation
2.Hospital 新增急需病床统计数 3.MyPanel update before fillOval 4.Person update,隔离中仍需处理,dieMoment计算包括隔离状态
老哥,向你学习。我们这个项目参与者要么拉个微信群呀,你起个头。我微信是chayc00,可以加你么。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
有两处代码存疑
bed.setEmpty(true); | ||
beds.add(bed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
老实说…… remove一遍再add一遍同一个实例,有什么确切的讲究吗?
@@ -223,6 +224,9 @@ public void update() { | |||
if (bed == null) { | |||
|
|||
//没有床位了,报告需求床位数 | |||
if(Hospital.bedInNeed < PersonPool.getInstance().getPeopleSize(State.FREEZE)) { | |||
Hospital.bedInNeed++; | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
需求床位变量这里存在一点问题。为什么要判断需求床位数量小于已冻结的收治患者人数?已经冻结状态下的确诊患者是有床位实例的引用的。在这里是无法继续从医院的床位中寻找空置床位收治患者给与床位引用。所以判断已经收治的数量无从谈起。另外这里不能直接 Hospital.bedInNeed++,update方法会在重绘整个画布时被调用,有多少人就会被调用多少次,所以我考虑这个方法中有很多状态修改的操作也存在疑虑。所以在这里我只加了注释,没有在这里添加实质性代码。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
建议修改这个值的方式不是在这里++。而是在每个Person实例中修改一个状态变量,并且获取时通过循环获取累加。虽然效率低,但是能保持这个值的正确性。
好的。当时我也想到在Person中增加状态位来做,直接++的方式有些不妥,后来想着先这样,后面慢慢再迭代起来吧。
Pay attention
…------------------ 原始邮件 ------------------
发件人: "XellossRyan"<[email protected]>;
发送时间: 2020年2月7日(星期五) 下午5:27
收件人: "KikiLetGo/VirusBroadcast"<[email protected]>;
抄送: "一林风"<[email protected]>;"Author"<[email protected]>;
主题: Re: [KikiLetGo/VirusBroadcast] 1.bed 修正注释 (#35)
@GinRyan commented on this pull request.
In src/Person.java:
> @@ -223,6 +224,9 @@ public void update() { if (bed == null) { //没有床位了,报告需求床位数 + if(Hospital.bedInNeed < PersonPool.getInstance().getPeopleSize(State.FREEZE)) { + Hospital.bedInNeed++; + }
建议修改这个值的方式不是在这里++。而是在每个Person实例中修改一个状态变量,并且获取时通过循环获取。虽然效率低,但是能保持这个值的正确性。
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
您好,不知道如何称呼,我叫渣渣辉。归还床位那里,我有仔细看过,病人使用床位是从床位池中找一个空闲的床位,那在归还时,原来的逻辑bed.setEmpty(true),我就认为这个床位是做了空闲处理,但是没有归还到床位池中,由于list不能像map那样覆盖处理,故先remove
再add。第二个问题中的判断其实是因为没有判断的时候,需要的病床数一直增加,超过城市总人数了,然后隔离的人才需要的病床,所以加了判断。不足之
处还请多多指教。
Pay attention
…------------------ 原始邮件 ------------------
发件人: "XellossRyan"<[email protected]>;
发送时间: 2020年2月7日(星期五) 下午4:47
收件人: "KikiLetGo/VirusBroadcast"<[email protected]>;
抄送: "一林风"<[email protected]>;"Author"<[email protected]>;
主题: Re: [KikiLetGo/VirusBroadcast] 1.bed 修正注释 (#35)
@GinRyan requested changes on this pull request.
有两处代码存疑
In src/Hospital.java:
> bed.setEmpty(true); + beds.add(bed);
老实说…… remove一遍再add一遍同一个实例,有什么确切的讲究吗?
In src/Person.java:
> @@ -223,6 +224,9 @@ public void update() { if (bed == null) { //没有床位了,报告需求床位数 + if(Hospital.bedInNeed < PersonPool.getInstance().getPeopleSize(State.FREEZE)) { + Hospital.bedInNeed++; + }
需求床位变量这里存在一点问题。为什么要判断需求床位数量小于已冻结的收治患者人数?已经冻结状态下的确诊患者是有床位实例的引用的。在这里是无法继续从医院的床位中寻找空置床位收治患者给与床位引用。所以判断已经收治的数量无从谈起。另外是否在这里直接bedInNeed++是否准确有待测试。我测试的时候运行时床位数轻易的突破了城市总人口数量,所以在这里我只加了注释,没有在这里添加实质性代码。
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
List是引用存储,而且形参也是引用传递,在函数传递的形参修改的就已经是List中的状态变量。所以实际上你remove一次又add一次的仅仅是一个引用,是没有必要这么做的。Map中的覆盖也是覆盖的引用而并非是数据覆盖。代码中所判断的bedInNeed是根据FREEZE状态判断的总数量,该属性是已经有床位的医院收治的患者。所以不能获得这个属性的人数判断。没有床位的总数去判断已收治数量存在逻辑问题。 归还过程其实就是改变一下Bed的状态而已。 |
你说的也有道理,归还我会再看下,bedInNeed统计确实不妥,下次修正。感谢。
Pay attention
…------------------ 原始邮件 ------------------
发件人: "XellossRyan"<[email protected]>;
发送时间: 2020年2月7日(星期五) 晚上6:27
收件人: "KikiLetGo/VirusBroadcast"<[email protected]>;
抄送: "一林风"<[email protected]>;"Author"<[email protected]>;
主题: Re: [KikiLetGo/VirusBroadcast] 1.bed 修正注释 (#35)
List是引用存储,而且形参也是引用传递,在函数传递的形参修改的就已经是List中的状态变量。所以实际上你remove一次又add一次的仅仅是一个引用,是没有必要这么做的。Map中的覆盖也是覆盖的引用而并非是数据覆盖。代码中所判断的bedInNeed是根据FREEZE状态判断的总数量,该属性是已经有床位的医院收治的患者。所以不能获得这个属性的人数判断。没有床位的总数去判断已收治数量存在逻辑问题。
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
2.Hospital 新增急需病床统计数
3.MyPanel update before fillOval
4.Person update,隔离中仍需处理,dieMoment计算包括隔离状态