Я вивчав OOP спільно з впровадженням Zend MVC протягом останніх кількох місяців. Я, як правило, новачок у програмуванні, але відчуваю, що мені слід навчитися речам «правильно», що для мене означає переконатися, що я розумію, чому все робиться так, як є. Тобто, я виявив, що, навчившись робити щось (що завгодно, скажімо, музика), найкращий спосіб навчитися щось робити - це знати в першу чергу, чому це робиться саме так.
У будь-якому разі, я дуже важко намагаюся зрозуміти, як розвивати власні бізнес-моделі (тобто, M MVC), і я вирішив, що це не тому, що я взагалі не розумію ООП, тому що вивчав його протягом кількох місяців, і я не думаю, що поняття дуже важко зрозуміти. Я знаходжу факти, які я вивчав, дуже інтуїтивно. Проблема для мене, я думаю, полягає в перетворенні власних проблем на об'єктно-орієнтовані рішення. Приклади в книгах (які я читав до цих пір) занадто очевидні, тому процес перекладу проблеми на об’єкти не дуже складний. Те, що я думаю, що я можу бракувати, - це абстрагований процес високого рівня. Якийсь перелік кроків або питань, на які кожне об’єктно-орієнтоване рішення повинно відповісти на найвищому рівні.
Якби вам довелося описати такий процес не більше ніж за п’ять кроків, якими вони були б і чому? Який найбільш ефективний процес перетворення будь-якої проблеми в об'єктно-орієнтоване рішення?