我可以找到的关于使用依赖注入的大多数示例(如果不是全部的话)(Google + Mark Seemann's Dependency Injection in .NET)展示了如何注入服务对象。即提供服务的对象。例如:AudioPlayer、TaxCalculator、RandomQuoteGenerator 等,注入这些类型的依赖项似乎很清楚,对我来说完全有意义。我不清楚如何处理 GUI 对象,因为这些不是服务对象。
例如,我正在使用一个需要我手动编写 UI 代码的 GUI 框架。我有一个 MainGui,其中包含一个 Toolbar,上面有几个 ToolbarButtons。因此,层次结构是这样的:
MainGui
ToolBar
ToolbarButton
etc.
所有这些 GUI 类都继承自一些基类。GUI 对象是注入的候选对象吗?如果是,我该如何处理我的工具栏依赖于 5 个不同的工具栏按钮的情况(唯一区分它们的是它们的 Text 属性)?