A mi modo de ver, podría haber dos formas de responder a esta pregunta. Una es asumir que estás hablando de tratar con un lenguaje que mucha gente dice que usa OOP, pero voy a decir que no, como C ++, Java o Ruby. Otra es suponer que está hablando de lo que voy a llamar OOP real, como en un lenguaje como Smalltalk, CLOS en Common Lisp o Erlang (con el Objetivo C una representación de OOP más distante pero más cercana que otros idiomas populares) .
Continuando con el primer supuesto, lo que sugiero es primero aprender sobre los tipos de datos abstractos (TDA). Es una estrategia de diseño que a veces se usa en lenguajes de procedimiento, como C. Una vez que obtenga ese concepto, piense en una clase como un ADT. Es una estructura que contiene variables. Puede crear instancias de él, y esas instancias son accedidas exclusivamente por un conjunto de funciones, también declaradas y / o definidas en la clase. Una vez que obtenga ese concepto, puede tener la oportunidad de agregarle algunas abstracciones, dependiendo del idioma, que le permitan tratar una instancia suya como una instancia de otra clase (por ejemplo, una secuencia o una cadena), si mejor representa lo que estás tratando de expresar.
Continuando con la segunda suposición (de que estamos hablando de OOP reales), sugiero pensar en los objetos como haciendo lo que hacen las computadoras. Estas computadoras no tienen que ser complicadas. Pueden ser muy sencillas, especializadas para tareas sencillas. Piense en ellos como si fueran servidores en Internet, donde los datos brindan la oportunidad de crear “sitios de servidores”, con interfaces (colecciones de métodos) que son como protocolos de Internet que operan entre servidores enviándose mensajes entre ellos. Al igual que con una red, cada servidor es su propia entidad que opera independientemente de otros servidores. Puede trabajar en cooperación con ellos, o no, dependiendo de si tienen permiso de ello.
No tengo ningún libro o artículo para recomendar, desafortunadamente.
- Cómo mantener la calma durante una entrevista.
- ¿Cómo lidiar con todos estos infieles que se agolpan en mi comunidad y mantener nuestra homogeneidad americana al mismo tiempo que frustra una revuelta por parte de dichos infieles?
- Estoy construyendo una aplicación móvil. ¿Qué necesito hacer antes y después de su lanzamiento?
- ¿Cómo debo comenzar a nadar?
- Realmente me encanta cantar y rapear, y quiero practicarlos y mejorarlos en casa. ¿Podría sugerir cómo hacer que las lecciones sean más interesantes y divertidas?