我正在为自动压力/温度/等应用程序工作。测量。 我正在尝试实施DDD ,但想知道我该怎么做。
为测量应用程序,可通过RS232或USB与不同的设备(DMM,烤箱,校准器等)进行通信。
我已经创建了一个“包装”命令以使用设备的库,公开了IPressureCalibrator
,ITemperatureCalibrator
,IDmm
之类的接口以及我们拥有的设备的特定实现。
在我的域模型中,我有不同的类别用于不同类型的度量,即PressureCalibration
,TemperatureCalibration
,TemperatureDriftMeasurement
,它们使用不同类型的测量设备,并且具有不同的测量流程。
我还为测量流程实现了模板模式,例如ex。类CalibrationCOntroller
,具有用于校准的模式,并将某些实现委派给特定的控制器
我的域模型中的测量类应该有一个控制器,该控制器也位于我的域层中,与设备通信并处理测量流。
我不应该使用控制器,并且测量类直接使用测量逻辑来实现模板模式。
这两个选项都具有使我的测量类真正丰富的模型的优点/选项,使所有测量逻辑都在实体中实现,并且能够调用诸如PressureCalibration.Run()
,PressureCalibration.Stop()
之类的事物并具有事件例如PressureCalibration.NewMeasureResult
或Started
/ Completed
等。
或
我是否应该在BLL层中使用控制器/服务,该层具有Measurement as属性(通过构造函数传递)并让其处理/知道测量过程?
Calibration.Run()
的事情,相反,我会做CalibrationService.Run()