He estado estudiando OOP en conjunto con la implementación MVC de Zend durante los últimos meses. Soy bastante nuevo en la programación, en general, pero creo firmemente que debería aprender las cosas de la manera "correcta", lo que para mí significa asegurarme de entender por qué las cosas se hacen como están. Es decir, descubrí que al aprender a hacer algo (cualquier cosa, digamos música), la mejor manera de aprender a hacer algo es saber por qué se hace de esa manera en primer lugar.
De todos modos, he estado luchando mucho para comprender cómo desarrollar mis propios modelos de negocio (es decir, la M de MVC), y he decidido que no es porque no entiendo la POO en general, porque lo he estudiado durante varios años. meses y no creo que los conceptos sean muy difíciles de entender. Los ejemplos que he estudiado me parecen muy intuitivos, en realidad. Creo que el problema para mí radica en el proceso de traducir mis propios problemas en soluciones orientadas a objetos. Los ejemplos en los libros (que he leído hasta ahora) son demasiado obvios, por lo que el proceso de traducir el problema en objetos no es muy difícil. Lo que creo que podría estar perdiendo es un proceso abstracto de alto nivel. Algún tipo de lista de pasos o preguntas que toda solución orientada a objetos debe responder al más alto nivel.
Si tuviera que describir dicho proceso en no más de cinco pasos, ¿cuáles serían y por qué? ¿Cuál es el proceso más efectivo para traducir cualquier problema en una solución orientada a objetos?