这主要是为了使用依赖注入
的WPF项目中的整洁在Java中,我可以执行以下操作:
public interface MyInjectable
{
void ExampleMethod();
public class Impl : MyInjectable
{
void ExampleMethod()
{
}
}
}
使用DI框架时很好,因为你调用内部类MyInjectable.Impl()来实现类,并在其他地方编写MyInjectable。
在C#中,我必须这样做:
public interface IMyInjectable
{
void ExampleMethod();
}
public class MyInjectable: IMyInjectable
{
void ExampleMethod()
{
}
}
IE我必须将类命名为独特的界面和单独的界面。有没有更好的方法来做到这一点,或任何解决方法来获得接近界面内部Impl类的东西?
答案 0 :(得分:0)
据我所知,在C#中没有更好的方法来解决这个问题。通常,由于C#中的匈牙利表示法很少,接口像在OP中一样通常以I
(例如IMyInjectable
)为前缀,从而留出了无前缀的名称(例如{{1} })。
但是,如果代码主要由MyInjectable
/ IFoo
对组成,则很可能违反了Reused Abstractions Principle。如果可能,请重新考虑应用程序体系结构以解决该代码异味。