我的应用程序使用 DI 框架,并在必要时遵循“程序到接口”实践。
我使用构造函数注入,因为我想明确地查看依赖关系。但是现在我的表单类的构造函数接受了太多参数(例如> = 4)。
问题:由于 UI 设计通常不遵循 SRP,因此 Winform 类可能具有n
构造函数依赖项。你喜欢让它们保持原样,而是传递一个代理对象,使用服务定位器......?考虑到没有使用 aop 框架,您是否还在每个构造函数中注入“方面”(记录器等)?
我的应用程序使用 DI 框架,并在必要时遵循“程序到接口”实践。
我使用构造函数注入,因为我想明确地查看依赖关系。但是现在我的表单类的构造函数接受了太多参数(例如> = 4)。
问题:由于 UI 设计通常不遵循 SRP,因此 Winform 类可能具有n
构造函数依赖项。你喜欢让它们保持原样,而是传递一个代理对象,使用服务定位器......?考虑到没有使用 aop 框架,您是否还在每个构造函数中注入“方面”(记录器等)?
UI 实现没有理由不遵守 SRP。使用 MVP、MVC 或 MVVM 等模式,UI 类的唯一职责是通过 UI 呈现和收集数据。这通常最好通过相当被动的数据结构来完成,例如视图模型。
关于构造函数过度注入的问题应该通过重构为 Aggregate Services来解决。
通过应用装饰器设计模式可以最好地解决各个方面。