我目前正在评估重构驱动程序管理的替代方案。
在我的多层架构中,我有
基类
DAL.Device
//我的实体
接口
BL.IDriver
//处理应用程序和设备之间的数据处理BL.IDriverCreator
IDriver
//从a创建一个Device
BL.IDriverFactory
//处理驱动创建请求
的每个专业化Device
都有相应的IDriver
实现和相应的IDriverCreator
实现。
目前,映射是通过业务层 / 中的类型检查修复的DriverFactory
。这意味着每个新驱动程序都需要 a) 更改其中的代码DriverFactory
b) 引用新的IDriver
实现/程序集。从客户的角度来看,这意味着每个新驱动程序,无论是否使用,都需要对其硬件环境进行复杂的重新验证,因为这是一个关键过程。
我的第一个灵感是使用像 nameconvention 这样的 caliburn micro
BL.RestDriver
BL.RestDriverCreator
DAL.RestDevice
在收到RestDevice
内部文件后,IDriverFactory
我可以通过反射加载所有驱动程序 dll 并进行名称拆分/比较(从 xxDriverCreator 和 xxDevice 中提取 xx)
另一个想法是自定义属性(这也导致比较字符串)。
我的问题:这是层边界之上的好方法吗?如果没有,什么是好的方法?