SlideShare a Scribd company logo
1 of 9
ООП
Частина 2
Приклад
Робітник
         (Worker)




Деталь
                Конвеєр
(Item)
                (ProductionLine)
Задача (не наша :)
• Конвеєр, на якому працює N робітників
• На початку дня на вхід подаються деталі,
• Які попадають у вхідну чергу першого робітника
• Результат роботи кожного робітника попадає у
  вхідну чергу наступного (але вже на наступний
  день)
• Результат останнього робітника є виходом
  конвеєра за поточний день
Робітник
• Кидає шестигранний кубик
• Обробляє за день стільки деталей, скільки
  випало на кубику
• Але не більше, ніж в нього в черзі
• Якщо черга порожня – нічого не робить
• Необроблені деталі залишаються в черзі
Нас цікавить
• Скільки часу деталь провела на конвеєрі?
• Min/Max час перебування на конвеєрі
Застереження
• Недолік простих прикладів – те, що вони
  прості
• Внесення нових сутностей може здаватись
  штучним ускладненням
Скільки днів проведе
на конвеєрі одна
деталь?
 Правильно, 5 днів

А дві деталі?
 Не менше 5-ти
 Не більше 6-ти
Реалізація

More Related Content

More from Victor Matyushevskyy (18)

Mobile applications development
Mobile applications developmentMobile applications development
Mobile applications development
 
Service oriented programming
Service oriented programmingService oriented programming
Service oriented programming
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
ASP.Net part 2
ASP.Net part 2ASP.Net part 2
ASP.Net part 2
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Основи Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerОснови Баз даних та MS SQL Server
Основи Баз даних та MS SQL Server
 
Usability
UsabilityUsability
Usability
 
Windows forms
Windows formsWindows forms
Windows forms
 
Practices
PracticesPractices
Practices
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
 
06 LINQ
06 LINQ06 LINQ
06 LINQ
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
 
04 standard class library c#
04 standard class library c#04 standard class library c#
04 standard class library c#
 
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)
 
#1 C# basics
#1 C# basics#1 C# basics
#1 C# basics
 
#0 Вступна лекція
#0 Вступна лекція#0 Вступна лекція
#0 Вступна лекція
 

#3 Об'єктно орієнтоване програмування (ч. 2)

  • 3. Робітник (Worker) Деталь Конвеєр (Item) (ProductionLine)
  • 4. Задача (не наша :) • Конвеєр, на якому працює N робітників • На початку дня на вхід подаються деталі, • Які попадають у вхідну чергу першого робітника • Результат роботи кожного робітника попадає у вхідну чергу наступного (але вже на наступний день) • Результат останнього робітника є виходом конвеєра за поточний день
  • 5. Робітник • Кидає шестигранний кубик • Обробляє за день стільки деталей, скільки випало на кубику • Але не більше, ніж в нього в черзі • Якщо черга порожня – нічого не робить • Необроблені деталі залишаються в черзі
  • 6. Нас цікавить • Скільки часу деталь провела на конвеєрі? • Min/Max час перебування на конвеєрі
  • 7. Застереження • Недолік простих прикладів – те, що вони прості • Внесення нових сутностей може здаватись штучним ускладненням
  • 8. Скільки днів проведе на конвеєрі одна деталь? Правильно, 5 днів А дві деталі? Не менше 5-ти Не більше 6-ти