我无法弄清楚如何构建它。
我有一个类VehicleState
,其属性包括passengers
:
public class VehicleState
{
public int _temp_passengers;
public int _passengers;
public int passengers
{
set { _temp_passengers = value; }
get { return _passengers; }
}
public void CommitState()
{
_passengers = _temp_passengers;
}
}
有一个每 X 秒触发一次的循环。每辆车都会在模拟中影响另一辆车。
为了避免在每辆车影响其他车辆时破坏属性,我将它们存储在临时字段中,例如_passengers
. 临时值在循环结束时被提交为常规值。
问题如下:
passengers = passengers - 1;
passengers += 1
变成:
_temp_passengers = _passengers - 1;
编辑:
为了进一步解释这个问题,假设有 10 辆车辆影响 A 车辆,乘客增加 1 人。每位乘客离开他们的车辆登上车辆 A。
所以该操作passengers += 1
将被调用 10 次,但它就像该操作只被调用一次一样!
有没有设计模式可以解决这个问题?
我可以将这样的每个属性包装在一个类中吗?
我可以在其中添加
+=
和-=
条件set{}
吗?
有任何想法吗?谢谢!:)