Инстанциране на нов клас в същия клас. Кога и защо?
От упражнението за създаване на Web Sever
Някой може ли да разясни, защо се ползва този начин на записване. Авторът така го е записал и Кенов така го записа.
Създава се инстанция и тогава се вика нейния метод Run(), вместо да се извика директно от Main.
public class Launcher : IRunnable
{
public static void Main()
{
new Launcher().Run();
}
public void Run()
{
var mainApplication = new GameStoreApp();
mainApplication.InitializeDatabase();
var appRouteConfig = new AppRouteConfig();
mainApplication.Configure(appRouteConfig);
var webServer = new WebServer(1337, appRouteConfig);
webServer.Run();
}
}
И друг въпрос - защо се слага интерфейс на стартиращия клас (този клас с Main метода)?
Изглежда излишно.
За интерфейса добре, да речем, че е добра практика зад всеки клас да има интерфейс.
Въпреки, че пръв път виждам Program (Startup, Launcher) да наследява интерфейс.
Каква е причината да не ползваме следния запис?