Page 84 - 4190
P. 84
Все це впливає на декомпозицію, причому часто суперечливим чи-
ном. Методики об’єктно-орієнтованого проектування відображають
різні підходи. Можна сформулювати задачу письмово, виділити з
одержаної фрази іменники і дієслова, після чого утворити відповідні
класи і операції. Інший шлях – зосередитися на відношеннях поділу
обов’язків у системі. Можна створити модель реального світу або пе-
ренести виявлені при аналізі об’єкти на свій дизайн. Згоди відносно,
того який підхід буде найкращий, ніколи не буде досягнуто.
Багато об’єктів виникають у проекті із побудов у ході аналізу мо-
делі. Але часто з’являються і класи, у яких немає прототипів у реаль-
ному світі. Це можуть бути класи як низького рівня, наприклад маси-
ви, та і високого рівня. Патерн-компанувальник вводить таку абстра-
кцію для одноманітного трактування об’єктів, у якої немає фізичного
аналога. Якщо дотримуватися строгого моделювання і орієнтуватися
тільки на реальний світ, то отримаємо систему, що відображає сього-
дніні потреби, але, можливо не враховує майбутній розвиток. Абст-
ракція, що виникає в ході проектування, ключ до гнучкого дизайну.
Патерни проектування допомагають виявити не зовсім очевидні
абстракції і об’єкти, які можуть їх використати. Наприклад, об’єктів,
що уявляють собою процеси або алгоритми, яких немає в наявності,
але вони є не від’ємною частиною гнучкого дизайну. Патерн страте-
гія описує спосіб реалізації взаємозамінних сімейств алгоритмів. Па-
терн стану дозволяє представити стан деякої сутності у вигляді
об’єкта. Ці об’єкти рідко з’являються під час аналізу і навіть на ран-
ніх стадіях проектування. Робота з ними починається пізніше, при
спробах робити дизайн більш гнучким і придатним для повторного
використання.
2. Визначення ступеня деталізації об’єкта. Розміри і кількість
об’єктів можуть сильно змінюватися. З їх допомогою можна предста-
вити усе, починаючи з рівня апаратури і до закінчених додатків. Як
же вирішити, що повинен являти собою об’єкт? У даному випадку і
буде потрібний патерн проектування. Патерн фасад показує, як пред-
ставити у вигляді об’єкта цілі підсистеми, а патерн, що пристосову-
ється, встановлює, як підтримати значну кількість об’єктів за високо-
го ступеня деталізації. Інші патерни вказують шлях до поділу об’єктів
на менші під об’єкти.
При оголошенні об’єктом будь-якої операції повинні бути зада-
ні: ім’я операції, об’єкти, що передаються як параметри, і значення,
які повертаються, як параметри, у якості операції. Цю тріаду назива-
84