使用武士刀,为什么Startup类不应实现各自的接口,例如:
interface IStartup
{
void Configuration(IAppBuilder app);
}
public class MyStartup : IStartup
{
public void Configuration(IAppBuilder app)
{
...
}
}
我认为开发人员可以更直观地了解他们应该向应用程序提供什么WebApp.Start<T>
方法作为 T 参数而不是猜测和寻找示例,它应该更明确:
public void Start<T>() where T : IStartup
原因是“没有充分的理由”。接口的存在是为了向实现者传达结构和目的(抽象类也可以做到这一点,并提供一些最小的行为)。没有他们,我们就只剩下惯例。在这种情况下,通过不限制 TStartup,OWIN 允许您使用任何无意义的 Startup 类,并且只能在运行时告诉您它是否有效。例如:
WebApp.Start<string>(BaseAddress);
编译正常,但在运行时抛出 EntryPointNotFoundException(在类“System.String”中找不到“配置”方法)。
并不是要完全哲学化,但我认为这是当今计算的总体趋势。 REST,没有合同,没有保证,你会发现范式在;肥皂已经过时了。从某些方面来说这是一件好事,但我不认为这个例子是其中之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)