Principios del Diseño Orientado a Objetos

Diego Alejandro Correa Ramirez
Bogota DC., Colombia
alejandroramirez.ramirez485@gmail.com

Resumen.  El presente escrito busca abarcar de forma general los principios
básicos del diseño orientado a objetos, cuya utilidad abarca no solo abarca la
programación   sino   se   puede   interpretar   como   consejos   y/o   ayudas   para   la
resolución de varios problemas de la vida cotidiana.
Palabras Clave:  Diseño, Objeto, Clase, Abstracción, Dependencia, Interface,
Modularidad, GRASP.

Abstract.  This   paper   seeks   generally   cover   the   basic   principles   of   object­
oriented design, the utility includes not only covers programming but also can
be   interpreted   as   advice   and   assistance   for   solving   various   problems   of
everyday life.
Keywords:  Design,   Object,   Class,   Abstraction,   Dependency,   Interface,
Modularity, GRASP.

1   Introducción
Con la creación del paradigma orientado a objetos en programación, la abstracción
de la realidad se logró hacer más simple y el planteamiento de problemas se hizo más
sencillo, pero el cuidado y evolución de este paradigma es lo que permite adaptarse
tan bien al mundo real, y eso se ve reflejado en lo que son los principios del diseño
orientado a objetos que permite ubicar al desarrollador en el plano de lo que debe
hacer y como, por lo que la relevancia de dichos principios es que forman lo más
básico de la programación que es el cómo piensa solucionar el problema, y desde
donde empieza la creación de la aplicación.

Pero en el caso de querer modificar un componente ya agregado. con el fin de que el sistema cumpla con las practicas GRASP. pero lleva un gran trabajo debido a que al usarcé en problemas altamente complejos es más difícil de aplicar este principio.  Principio de Leer el Manual (RTFM): Define como el procedimiento fundamental antes de iniciar el uso de algún instrumento o aparto con el fin de predecir y superar cualquier dificultad que el manejo de dicho objeto representa.2  Principio No te Repitas (DRY): Es uno de los fundamentos para la creación de un óptimo sistema de información.  Principio de Clase Abierta/Cerrada (OCP): Este principio busca que la aplicación pueda agregar nuevas partes al programa ya existente sin necesidad de alterar lo que se encuentra de momento en la aplicación. la responsabilidad única hace que el sistema sea más legible y fácil de mantener a futuro. ya que busca reunir de distintas partes de un programa un código duplicado ubicándolo en un solo punto del código en donde es accesible a todas las partes que lo necesitan. de Clases y de Paquetes.1   Principios Generales del Diseño Orientado a Objetos 2. además de eliminar en gran medida la inconsistencia del aplicativo. Principios del Diseño Orientado a Objetos a nivel de Clases: SOLID  Principio de Responsabilidad Única (SRP): Se fundamenta en el principio de Modularidad y corresponde a la delegación de una única tarea a una clase específica. ya que permite usar cualquier objeto de una clase hija como si fuera una instancia de la clase padre sin necesidad de que la clase hija conozca todas las demás clases que heredan . comprensibles y sencillas con el fin de simplificar la tarea de diseñar de un sistema muy complejo utilizando grandes e inestables módulos. facilitando la gestión y evolución de dicho sistema. 2. esto usando cualquier método de adición de funciones.2   Principios del Diseño Orientado a Objetos Los principios del Diseño Orientado a Objetos (DOO) se pueden dividir en tres sobresalientes grupos de principios: Generales. además de ilustrar al lector en cómo puede optimizar el uso de aquel aparato.  Principio «Manténgalo breve y simple» (KISS): Corresponde a la modularidad ya que plantea el desarrollo de distintas partes cortas. En este sentido.  Principio de Substitución de Liskov (LSP): Constituye una de las utilidades más importantes de la herencia. esto no será posible porque la aplicación es cerrada para modificación.

además de poder usar dichos paquetes en otros programas sin alterar el contenido de los mismos.3 Principios del Diseño Orientado a Objetos a nivel de Paquetes: Cohesión  Principio de equivalencia de liberación y reúso (REP): El agrupamiento de clases o módulos en paquetes permite administrar y controlar una versión nueva de la aplicación sin necesidad de cambiar la estructura de alguna de las clases que lo componen. 2.  Principio de Inversión de Dependencia (DIP): Este principio habla sobre el nivel de dependencia y la dirección de esta en la relación entre distintas clases o de una clase con sus elementos.  Principio de Segregación de Interfaces (ISP): Partiendo del principio de Responsabilidad única. solo lo haga para aquellas interfaces que necesita usar y dejar de lado aquellos métodos que no necesita para su funcionamiento. y sin embargo. la segregación de interfaces busca separar una interfaz con muchos prototipos en varias interfaces con pocos prototipos con el fin de que la clase que implemente dichas interfaces.  Principio de cierre común (CCP): En la aplicación se deben agrupar en paquetes específicos las clases que tengan cierto grado de dependencia entre ellas. considerando si es necesario abrirlo a extensión o no de acuerdo a las posibilidades. ya que sería una pérdida de espacio en memoria y pueda generar problemas a futura al no poder conservar dicha estructura en el paquete en el momento del mantenimiento.  Principio de Reutilización Común (CRP): Este principio dicta que las clases que no pueden ser rehusadas no debe agruparse en el paquete con otras que sí. esto con el fin de que la aplicación sea la coordinación de los distintos paquetes. Esto además permite que en el mantenimiento del sistema sean solo las clases de un paquete las que se tengan que cambiar. al momento de agregar una nueva funcionalidad se tendría que las clases que implementen dicha interfaz cambiaran de estructura. y como va a ser el comportamiento de ese elemento a lo largo del tiempo. no deben tener ninguna dependencia con componentes de jerarquía inferior. Para implementar este principio se debe reconocer cuales son los puntos de dependencia de la clase superior. . como herencia o composición. Este principio ayuda a ocultar el funcionamiento de distintas clases relacionadas sin que esto afecte la ejecución del programa. siendo estos quienes son los dependientes de la clase superior. puede que algunas de ellas como tal nunca vayan a usar la nueva función.de la clase padre. si una sola interfaz tuviera muchos prototipos. En caso contrario. en donde los componentes de jerarquía superior.

 A.  D..genbetadev. Medina Serrano. Referencias bibliográficas 1.3 Principios del Diseño Orientado a Objetos a nivel de Paquetes: Acoplamiento  Principio de Dependencias A-cíclicas (ACP): Especifica que los paquetes y las clases que los componen no deben tener relaciones cíclicas entre ellos ya que provocaría inconsistencias en el momento de utilización de la relación especificada. cinco principios básicos de diseño.  La Güeb de Joaquin.  Solid. (2009).  Rifatti.2.  Genbeta Dev. 3. J. L.net/web2008/documentos/informatica/documentacion/logica/OOP/Prin cipios/2012_09_04_PDOOPrincipioDisenyo_Indice. (2011). (2015) Principios del diseño orientado a objetos. Saccomanno.  Principio de Abstracción Estable (SAP): Define que los paquetes más estables son aquellos más abstractos dentro del sistema o aquellos que están compuestos de más abstracciones.html. para optimizar su estado.  Principios y Patrones de Diseño. sobre todo hacia aquellos paquetes que son inestables.com/paradigmas­de­programacion/solid­cinco­principios­basicos­ de­diseno­de­clases. J. Rosario. Acosta. Argentina. . Recuperado   de http://jms32.eresmas. 2.  Principio de Dependencias Estables (SDP): Parte que de los paquetes más estables dentro del sistema se deben desprender las relaciones hacia los demás paquetes. Rubira. V. esto hace que la jerarquía como paquete sea alta y sea el paquete más abstracto el punto inicial desde donde empiezan a desprenderse las distintas relaciones hacia los demás paquetes. F.. Recuperado de http://www.