Fundamentos Esenciales de la Programación Orientada a Objetos y Diseño de Software

Clasificado en Informática

Escrito el en español con un tamaño de 3,53 KB

Principios Fundamentales de Diseño y POO

A continuación, se presentan conceptos esenciales sobre la Programación Orientada a Objetos (POO), el diseño de software y el lenguaje C++.

Principios de Diseño de Software

  1. La independencia funcional (o *alta cohesión*) implica interfaces sencillas, donde cada módulo tiene una función determinante y muestra aversión a interactuar excesivamente con otros módulos. Esto permite que, mientras se trabaja con un módulo, se puedan olvidar los detalles del resto.
  2. La Ley de Deméter para clases y métodos dice que en cualquier método M de una clase C solo se pueden utilizar los métodos definidos en la propia clase C, en alguna de las clases pasadas como argumentos a M, en alguna de las clases de los objetos globales o en las clases de los objetos creados dentro de M.
  3. La Ley de Deméter para objetos y mensajes (forma débil) dice que, dentro de cualquier método M, se puede acceder directamente o enviar mensajes a las variables globales o locales a M.
  4. El mejor tipo de acoplamiento para la mantenibilidad de un programa es el de *datos*. El acoplamiento de estampado es generalmente menos deseable.

Conceptos Centrales de la Programación Orientada a Objetos (POO)

  1. La generalización define clases que juntas conforman la definición de un solo objeto (relación de *herencia* o *es-un*).
  2. Un lenguaje de programación *puro* se caracteriza porque todo es un objeto de una clase y todas las clases heredan de una clase base.
  3. Los términos centrales en la POO son objeto, clase y herencia.
  4. La encapsulación es un mecanismo que permite separar de forma estricta interfaz e implementación.
  5. La interpretación de un mismo mensaje puede variar en función del receptor del mismo y/o del tipo de información adicional que lo acompaña (concepto conocido como *polimorfismo* o *despacho dinámico*).

Modelado y Estándares

  1. UML (Lenguaje Unificado de Modelado) es un estándar para especificar el análisis y diseño del software.
  2. El diagrama de actividad modela procesos, lógica condicional y concurrencia.

Especificidades de C++ y Gestión de Objetos

  1. El constructor de copia se invoca automáticamente durante la *inicialización* de un objeto a partir de otro (por ejemplo, al pasar un objeto por valor o en una declaración con el operador igual).
  2. Es posible definir un constructor de copia invocando en su cuerpo al operador de asignación. (Esta práctica requiere un manejo cuidadoso de recursos).
  3. Las funciones miembro constantes pueden ser utilizadas con objetos constantes.

Manejo de Atributos y Métodos de Clase (Static)

  1. Las variables de clase (miembros estáticos) en C++ deben inicializarse fuera del ámbito de la clase para reservarles memoria.
  2. Un método de clase (método estático) es una operación que accede exclusivamente a atributos de clase.
  3. Un atributo de clase público puede ser accedido desde fuera de la clase a través de un objeto de la clase, un puntero o referencia al mismo, o mediante el nombre de la clase seguido del operador de ámbito (::).

Entradas relacionadas: