我用 MVVM 设计开发 wpf 应用程序。作为 MVVM 框架,我使用 Caliburn Micro。我在外部程序集中拥有的服务,它被注入到带有 MEF 的视图模型类中。
服务中的问题我有很多小班,我尽量尊重 SOLID 原则。
[Export(typeof(IClassA)]
public class ClassA : IClassA
{}
[Export(typeof(IClassB)]
public class ClassB : IClassB
{}
[Export(typeof(IClassC)]
public class ClassC : IClassC
{}
//...
[Export(typeof(IClassK)]
public class ClassK : IClassK
{}
班级数约为 12-15。
我需要在视图模型类中使用这些类。所以我用这个:
public class MyViewModelClass
{
private interface IClassA _a;
private interface IClassB _b;
private interface IClassC _c;
//...
private interface IClassK _k;
[ImportingConstructor]
public MyViewModelClass(IClassA a, IClassB b, IClass c, ..., IClassK k)
{
_a=a; _b=b; _c=c; ... _k=k
}
}
我不认为这种方式是正确的。或者它存在一些优雅、简单的东西。感谢您的意见和建议。