Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_ASP.NET MVC / 4.SOLID и инверсия зависимостей.pptx
Скачиваний:
52
Добавлен:
14.04.2015
Размер:
483.04 Кб
Скачать

Атрибут

Версия класса Warrior с полем

weaponpublic class W arrior

{

readonly I eapon w eapon;

public W arrior(I eapon w eapon)

{

this.w eapon = w eapon;

}

public void Kill()

{

w eapon.Kill();

}

}

Версия класса Warrior со свойством

Weaponpublic class W arrior

{

[Inject]

public I eapon W eapon { set;get;}

public void Kill()

{

W eapon.Kill();

}

}

[Inject]

Ninject

 

инициализирует

 

автоматические

 

свойства, если они

 

открытые и помечены

 

атрибутом [Inject]

21

 

Самостоятельно

class ScheduleM anager

{

public String G etSchedule()

{

return "1,2,3";

}

}

class ScheduleView er

{

ScheduleM anager _scheduleM anager;

public ScheduleView er(ScheduleM anager scheduleM anager)

{

_scheduleM anager= scheduleM anager;

}

public string RenderSchedule()

{

return "< " + _scheduleM anager.G etSchedule()+ "> ";

}

}

class Program

{

static void M ain(string[]args){

ScheduleView er sv = new ScheduleView er(new ScheduleM anager()); Console.W riteLine(sv.RenderSchedule());

}

}

Объект ScheduleViewer показывает расписание, придав ему эстетический вид.

Он получает расписание в сыром виде при помощи объекта ScheduleManager

Преобразуйте заданный код, внедрив зависимость от интерфейса и применив IoC-контейнер для создания объектов.

22