Está en la página 1de 30

ARQUITECTURA

DE SOFT WARE
I N G . R I C A R D O J AV I E R A R A N I B A R L E O N
COMPRENDIENDO ALGUNOS
CONCEPTOS
PILARES
1. Abstracción - Representando lo que verdaderamente importa
2. Encapsulamiento – Lo que pasa en las vegas se queda en las vegas
3. Herencia – Lo que se hereda no se huerta
4. Polimorfismo – Mismo nombre, distintos resultados
PRINCIPIOS
AISLAR LO INESTABLE
COMPOSICION O HERENCIA
Es mejor depender de lo Abstracto
ABSTRACCIÓN

• Es uno de los pilares de la Programación Orientada a Objetos.

Concepto
ES LA CAPACIDAD DE MODELAR UNA SITUACION EN UN CONTEXTO DETERMINADO
Concentra
SOBRE LAS CARACTERISTICAS ESENCIALES DE UN OBJETO SEGÚN CADA OBSERVADOR
Ayuda
A representar de toda la información que hay cual es relevante a nuestro problema
En el mundo hay muchos datos e información pero no todo es relevante para el contexto donde
estamos trabajando
ABSTRACCION
ABSTRACCION

• Otro ejemplo de abstracción es cuando estamos


integrando sistemas.
• Nuestra aplicación debe conectarse con un servidor de
terceros donde nos devolverá gran cantidad de datos que
en nuestra aplicación no son necesarias.
• Por ejemplo nos envía una clase con 15 datos y solo
necesitamos 7.

Solo se debe incluir lo que sirve


ENCAPSULAMIENTO

Segundo pilar de la POO

Hay ciertos detalles que debemos ocultar.


Hay cierto cosas que debemos conservar y exponer solamente
otras que son de interés en otras partes.
Concepto
ES LA CAPACIDAD DE UN OBJETO DE ESCONDER SU
ESTADO Y SU COMPORTAMIENTO DE OTROS OBJETOS
Cada objeto a través de su clase tiene la capacidad de definir cuales
de sus atributos o variables de clase o cuales de sus métodos o
funciones están disponibles a otros objetos y cuales no.
ENCAPSULAMIENTO
ENCAPSULAMIENTO
HERENCIA

Tercer Pilar de la Programación Orientada a Objetos


Concepto
Es la capacidad de construir nuevas clases a partir de clases
existentes
Ejemplo: Pez hereda de Animal, Pez va a tomar toda la
estructura de Animal, esto incluye tanto el Estado (variables
de clase o atributos) como el Comportamiento (Métodos o
Funciones) no importa si los métodos son públicos o privados
todo va ser heredado.
La clase “Animal” se la puede llamar: Clase Base, SuperClase o
Clase Padre.
La clase “Pez” se la llama: SubClase, Clase Hija o SubTipo
HERENCIA

LAS CLASES HIJAS SUELEN SER VERSIONES MAS ESPECIALIZADAS


DE LAS CLASES DE LAS CUALES SE HEREDAN
Clase Padre:Animal
Clase Hija: Pez
En la medida en que vamos avanzando en la jerarquía de herencia los
tipos tienden a ser mas especializados, si vamos subiendo en la
jerarquía de herencia hacia la clase Padre, estos tipos tiende a ser mas
generales.
HERENCIA – CLASE ABSTRACTA

Es una clase donde no podemos crear objetos.


Normalmente la vamos a utilizar:
- Cuando queremos inicializar una jerarquía de clases.
- O definir ciertos elementos comunes para todas las
clases que van a heredar de ella
HERENCIA – CLASE ABSTRACTA
HERENCIA – CLASE ABSTRACTA
HERENCIA – CLASE ABSTRACTA
HERENCIA – CLASE ABSTRACTA

• Las clases abstractas definen métodos y propiedades abstractos donde su implementación


es obligatoria en las subclases.
• Los elementos abstractos deben ser sobrescritos en las subclases o clases hijas.
• Los elementos abstractos no se implementan solo se declaran.
• Los elementos abstractos para su implementación se utiliza override.
HERENCIA – CLASE ABSTRACTA
HERENCIA - INTERFACE

• Son una colección de acciones o propiedades que definen una


clase en este caso nuestra interface será IAve la cual contendrán
métodos como ser Volar(), Comer() y Descripción.
• Son mecanismos para que puedan interactuar varios objetos no
relacionados entre si.
• Contienen la declaración de métodos pero no su implementación.
• También conocido como contratos.
• Plantillas de comportamiento que deben ser implementadas por
otras clases
HERENCIA - INTERFACE
HERENCIA - INTERFACE

• Los elementos de una interface no llevan


modificadores de acceso.
• Todos los elementos declarados en una
interface se consideran públicos y
abstractos
• Una clase que herede de una interface
debe implementar todas las definiciones
contenidas en ella.
HERENCIA - INTERFACES
HERENCIA – INTERFACE (PROPIEDAD)
HERENCIA – INTERFACE EJERCICIO
HERENCIA – INTERFACE EJERCICIO
HERENCIA – INTERFACES EN C#

IComparable
IEquatable
IEnumerator
IEnumetable
INotifyPropertyChanged
Otros
HERENCIA – INTERFACE ICOMPARABLE

• Devuelve un valor entero como resultado de la comparación.


• Contiene la declaración del método CompareTo
interface IComparable -1 Si this < obj
{
int CompareTo(object obj); 0 Si this == obj
}
1 Si this > obj
HERENCIA – INTERFACE ICOMPARABLE
HERENCIA – INTERFACE IEQUATABLE

• Devuelve un valor boleano como resultado de la comparación.


• Contiene la declaración del método Equals
interface IEquatable<T>
{
bool Equals(T obj);
}
HERENCIA – INTERFACE IEQUATABLE
NOTA

• No se pueden comparar objetos de diferentes tipos, es decir creados a partir de clases


diferentes.

• Las interfaces IEquatable e IComparable solamente comparar objetos del mismo tipo.

También podría gustarte