Page 97 - 4190
P. 97
вдається побудувати таке рішення, де спеціалізація досягається за-
вдяки визначення одного підкласу і комбінування його екземплярів з
уже існуючими. Патерни проектування: міст. ланцюжок обов’язків,
компанувальник, декоратор, спостерігач, стратегія.
8) незручності при зміні класів. Інколи потрібно модифікувати
клас, але робити це не зручно. Припустимо, необхідний початковий
код, а його немає (так може бути з комерційними бібліотеками кла-
сів). Будь-яка зміна викликає модифікацію множини існуючих під-
класів. Завдяки патернам проектування можна модифікувати класи і
за таких умов. Патерни проектування: адаптер, декоратор, відвіду-
вач.
Наведені приклади демонструють ту гнучкість роботи, якої мож-
на досягнути використовуючи патерни при проектуванні додатків.
Наскільки така гнучкість потрібна, залежить, звичайно, від особливо-
стей самої програми.
Питання для самоконтролю
1. Які фактори необхідно враховувати в об’єктно-орієнтованому
проектуванні при поділі системи на об’єкти?
2. У чому суть специфікування об’єктів інтерфейсу?
3. У чому різниця між успадкування класу і успадкування інтер-
фейсу?
4. Які переваги програмування з інтерфейсом, а не з реалізацією?
5. У чому суть успадкування класів при об’єктно-орієнтованому
проектуванні?
6. В чому суть композиції об’єктів при об’єктно-орієнтованому
проектуванні?
7. Які два найбільш поширених прийоми повторного використан-
ня функціональності в об’єктно-орієнтованих системах ?
8. Що означає повторне використання функціональності прозо-
рим ящиком?
9. Що означає повторне використання функціональності чорним
ящиком?
10. Для чого використовується делегування композиції?
11. Що означає розроблення програмного забезпечення через тес-
тування?
97