Logo Studenta

Programación_II_Parcial_N2_Resumen

¡Este material tiene más páginas!

Vista previa del material en texto

Resumen Parcial N°2 de Programación II
Unidad N°4
Contenidos:
● Métodos externos.
● Propiedades: Concepto, definición, acceso, implementación.
● Enumeraciones: Concepto, definición, concepto de herencia.
● Clase base, clase hija, sintaxis de clases derivadas.
● Constructores de clases hijas.
Métodos Externos
Cuando una clase usa objetos de otra clase y se hacen llamadas a métodos de ese
objeto (métodos definidos en otra clase) decimos que se llama a un método externo.
Sintaxis:
Clase nombreDeObjeto = new Clase();
nombreDeObjeto.nombreDelMetodo(parametros);
La llamada a métodos internos (en la misma clase) no necesitan el nombre del
objeto, se llaman directamente.
Propiedades
Representan características de los objetos que son accedidas como si fueran
atributos.
Una propiedad es un miembro que proporciona un mecanismo flexible para leer,
escribir o calcular el valor de un campo privado.
Las propiedades se pueden usar como si fueran miembros de datos públicos, pero
en realidad son métodos especiales denominados descriptores de acceso.
Esto permite acceder fácilmente a los datos a la vez que proporciona la seguridad y
la flexibilidad de los métodos.
Una propiedad puede proporcionar protección a un campo de clase con el fin de
evitar que se cambie sin el conocimiento del objeto.
¿Cómo implementarlas? Utilizando get{ } y set { } para las propiedades.
1
Descriptores de acceso:
SET => permite que los miembros de datos se asignen.
GET => recupera los valores de los miembros de datos.
Estos descriptores de acceso pueden tener diferentes niveles de acceso.
La palabra clave VALUE se usa para definir el valor que va a asignar el descriptor de
acceso SET.
Sólo lectura
Tienen sólo el descriptor de acceso GET.
Sólo escritura
Tienen solo el descriptor de acceso SET.
Lectura Escritura
Tienen ambos descriptores de acceso.
Ejemplo:
private string nombre;
private int edad;
public string Nombre
{
set { nombre = value; }
get { return nombre; }
}
public int Edad
{
set { edad = value; }
get { return edad; }
}
Enumeraciones
Una de las características importantes de la mayoría de los lenguajes de
programación modernos es la posibilidad de definir nuevos tipos de datos.
Entre estos tipos definidos por el usuario se encuentran los tipos enumerados o
enumeraciones.
Un tipo enumerado o de enumeración es un tipo cuyos valores están definidos por
una lista de constantes de tipo entero.
2
Una enumeración, o elemento enum, es un nombre simbólico para un conjunto de
valores. Las enumeraciones se tratan como tipos de datos y se pueden usar a fin de
crear conjuntos de constantes para su uso con variables y propiedades enum
(palabra reservada).
En un tipo de enumeración las constantes se representan por identificadores
separados por comas y encerrados entre llaves.
Los valores de un tipo enumerado comienzan con 0, a menos que se especifique lo
contrario y se incremente en 1.
Sintaxis:
enum nombre_tipo {identificador1, identificador2, ...]
Ejemplo:
3
Herencia
Es un mecanismo que permite definir nuevas clases a partir de otras ya definidas de
modo que si en la definición de una clase indicamos que ésta deriva de otra,
entonces la primera (a la que se le suele llamar clase hija) será tratada por el
compilador automáticamente como si su definición incluyese la definición de la
segunda (a la que se le suele llamar clase padre o clase base).
Ejemplo sintaxis en C#:
class <nombreHija> : <nombrePadre>
{
<miembrosHija>
}
Herencia: Clase Base
La clase principal de la que derivan las restantes se denomina clase base (en C++),
clase padre o superclase y las subclases, se denominan clases derivadas, hija o
subclase (en C++).
La clase base no tiene padre.
Herencia: Clases Derivadas
La herencia o relación es-un es la relación que
existe entre dos clases, en la que una clase
denominada derivada se crea a partir de otra ya
existente, denominada clase base.
4
Este concepto nace de la necesidad de construir una nueva clase y existe una clase
que representa un concepto más general; en este caso la nueva clase puede heredar
de la clase ya existente.
Jerarquía de Herencia
La jerarquía de herencia puede tener más de dos niveles. Una clase hija puede ser
una clase padre, a su vez, de otra clase hija.
Las clases hija o subclases añaden sus propios atributos y operaciones a los de sus
clases base. Una clase puede no tener clase hija, en cuyo caso es una clase hija. Si
una clase tiene sólo un padre, se tiene herencia simple y si tiene más de un padre,
entonces, se tiene herencia múltiple.
HERENCIA SIMPLE => 1 PADRE
HERENCIA MÚLTIPLE =>MÁS DE 1 PADRE
Herencia Simple
Una clase hija o subclase puede heredar atributos y operaciones de otra clase padre
o superclase. La clase padre es más general que la clase hija. Una clase hija puede
ser, a su vez, una clase padre de otra clase hija.
Herencia Múltiple
Herencia múltiple o generalización múltiple se produce cuando una clase hereda de
dos o más clases padres.
Aunque la herencia múltiple está soportada en UML y en C++ (no en Java), en
general, su uso no se considera una buena práctica en la mayoría de los casos. Esta
característica se debe al hecho de que la herencia múltiple presenta un problema
complicado cuando las dos clases padre tienen solapamiento de atributos y
comportamientos. ¿A qué se debe la complicación? Normalmente a conflictos de
atributos o propiedades derivadas (Ambigüedad).
5
Estos problemas conducen a malas prácticas de diseño y ha hecho que lenguajes de
programación como Java y C# no soportan herencia múltiple. Sin embargo como
C++ soporta esta característica, UML incluye en sus representaciones este tipo de
herencia.
Declaración de una Clase Derivada
Constructor de una Clase Derivada
Cuando se crea un objeto de una clase derivada, primero se invoca al constructor de
la clase o clases base y a continuación al constructor de la clase derivada.
Lógicamente, si no hemos definido los constructores de las clases, se usan los
constructores por defecto que crea el compilador.
6
ACCESO A MIEMBROS INTERNOS ( THIS/SELF)
Palabra reservada que se utiliza para hacer referencia a un objeto o miembro que
pertenezca a la clase.
this.<nombre_objeto>;
Es decir, dentro de un método con parámetros cuyos nombres coincidan con
campos, se da preferencia a los parámetros y para hacer referencia a los campos
hay que pre fijarlos con el this. Algunos programadores prefieren utilizar this para
dejar claro que se está haciendo referencia a un miembro de la clase.
Ejemplo:
Persona (string Nombre, int Edad)
{
this.Nombre = Nombre;
this.Edad = Edad;
}
UML
¿Qué es? Es un lenguaje de modelado visual de propósito general orientado a
objetos, para escribir “planos” de software.
Impulsado por el “Object Management Group”.
Estándar: UML es un lenguaje independiente del proceso de desarrollo, aunque para
que sea utilizado óptimamente se debe utilizar un proceso que sea dirigido por
casos de uso, centrado en la arquitectura, iterativo e incremental.
UML = Unified Modeling Language
Se utiliza para:
● Visualizar: UML es un lenguaje gráfico y es algo más que un conjunto de
símbolos gráficos. Detrás de cada símbolo en la notación UML hay una
semántica bien definida.
● Especificar: tiene que ver con la construcción de modelos precisos, no
ambiguos y completos. UML cubre la especificación de todas las decisiones
de análisis. diseño e implementación que deben realizarse al desarrollar y
desplegar un sistema con gran cantidad de software.
7
● Construir: UML no es un lenguaje de programación visual, pero sus modelos
pueden conectarse de forma directa a una gran variedad de lenguajes de
programación, esto permite realizar ingeniería directa, es decir, la generación
de código a partir de los modelos.
● Documentar: UML permite generar una serie de artefactos además del código
fuente.
Representar clase “empleado” (se recomienda visibilidad privada o protegida para
los atributos):
8
Clase Abstracta:
En la poo así como en la vida real, los objetos se relacionan.También se componen
unos de otros por ejemplo un automóvil podría estar compuesto de otros objetos: un
conductor un dueño un motor (se puede usar para diagramar clases herramientas
como : umbrello, staruml, argouml).
Relaciones Entre Clases
Las relaciones entre clases son comunes dentro de cualquier sistema, existen para
saber el “cómo” y el “por qué” se relacionan y, hacer uso de los diagramas de clases,
nos facilita definir o saber que tipo de relación existe entre dos clases.
Asociación
Existen diferentes formas en que las clases se relacionan, sin embargo el tipo de
relación más común es la de asociación.
En el diagrama UML, podemos ver como la clase persona se relaciona con la clase
perro.
Ejemplo:
9
Agregación
Otro tipo de relación semántica común entre clases, es la de agregación.
Significa que una clase agrega a otra como parte de se estructura, la relación implica
una dependencia que se puede interpretar como “tiene un”.
Ejemplo:
10
Composición
El siguiente tipo de relación entre clases, es la de composición.
Este tipo de relación es más restrictiva, ya que se puede interpretar como “debe
tener”, lo que implica una relación semánticamente más fuerte que sus antecesoras.
Ejemplo:
11
Extensión
El último tipo de relación existente es el de extensión.
Ejemplo:
12
Comandos GIT
13
Programación orientada por capas
Unidad N°5
Cuando se construye software, se llevan a cabo varias técnicas de manera que el
desarrollo se haga en forma ordenada y así poder asegurar un avance continuo del
proyecto, un producto final de calidad, y además que la tarea de realizar posteriores
mejoras sea de una forma más fácil.
Existen muchas prácticas de programación, dependiendo del tipo de software que se
va a desarrollar y de la disciplina o disciplinas de programación que se utilicen en el
desarrollo del producto.
Una de las más utilizadas se llama la programación por capas, que consiste en
dividir el código fuente según su funcionalidad principal.
Programación orientada por capas
La programación por capas es una técnica de ingeniería de software propia de la
programación por objetos, éstos se organizan principalmente en 3 capas:
● Capa de presentación o frontera.
● Capa de lógica de negocio o control.
● Capa de datos.
La programación por capas es una metodología para desarrollar software.
¿Cuál es el objetivo?
Que cada una de las partes que compone
aplicación informática se encuentre separada y
no interfiera con las más partes. A cada una de
esas partes se le llama «capa».
CAPA DE PRESENTACIÓN
Es todo lo que el usuario puede ver. La
presentación del programa ante el usuario, debe
manejar interfaces que cumplan con objetivo
principal de este componente, el cual es facilitar
al usuario interacción con la aplicación.
La interfaz debe ser amigable y fácil de utilizar
para el usuario final. Esta capa se comunica
únicamente con la capa de Reglas de Negocio o Control.
14
CAPA DE LÓGICA DE NEGOCIO
Es llamada capa de reglas de negocio porque en esta se definen todas las reglas
que se deben cumplir para una correcta ejecución del programa. Es aquí donde se
encuentra toda la lógica del programa, así como las estructuras de datos y objetos
encargados para la manipulación de los datos existentes, así como el
procesamiento de la información ingresada o solicitada por el usuario en la capa de
presentación.
Representa el corazón de la aplicación ya que se comunica con todas las demás
capas para poder llevar a cabo las tareas.
Recibe los datos que ingresó el usuario del sistema mediante la capa de
presentación, luego los procesa y crea objetos según lo que se necesite hacer con
estos datos; esta acción se denomina encapsulamiento.
Al encapsular los datos, el programa asegura mantener la consistencia de los
mismos, así como obtener información precisa de las bases de datos e ingresar en
las mismas, solamente la información necesaria, asegurando así no tener datos
duplicados ni en las bases de datos, ni en los reportes solicitados por el usuario.
CAPA DE DATOS
Es la encargada de realizar transacciones con bases datos con otros sistemas para
obtener información del sistema. El manejo de los datos debe realizarse de forma tal
que haya consistencia en los mismos, de tal forma los datos que ingresan a como
los que extraen de las bases de datos, deben ser consistentes y precisos.
Esta capa envía la información directamente a la capa de reglas de negocio para que
sea procesada e ingresada en objetos según se necesite, esta acción se denomina
encapsulamiento.
NO EXISTE DEPENDENCIA DEL ORIGEN DE DATOS.
La programación en capas no es una técnica rígida que debe implementarse
solamente de una forma, sino que los desarrolladores de proyectos tienen
múltiples maneras de implementarla según las tecnologías y tendencias que se
utilicen.
La satisfacción de los requerimientos del usuario es la base para escoger el modelo
de implementación a seguir. Dentro del concepto de programación en capas, existen
dos términos esenciales para el mejor entendimiento de los conceptos relativos a
esta metodología, es aquí donde radica la importancia de la cohesión y el
acoplamiento dentro de una aplicación generada mediante este método.
15
Cohesión
Describe el comportamiento que deben tener los módulos y objetos de un sistema o
subsistema, comportamiento que describe la forma en que deben trabajar los
objetos y módulos entre sí, con alta cohesión para que trabajando en conjunto los
módulos y objetos puedan alcanzar un solo propósito manera más eficaz y rápida.
Determina que las operaciones de un Objeto deben trabajar en conjunto para
alcanzar un propósito común.
Es deseable que haya alta cohesión.
Acoplamiento
Grado de dependencia que existe entre los módulos.
Este grado de dependencia es considerablemente bajo ya que el trabajo se divide en
módulos para que cada uno tenga un funcionamiento específico y pueda ser más
factible la implementación por separado.
En caso de haber alto acoplamiento entre módulos no se estaría alcanzando el
principal objetivo de este modelo, el cual es dividir una tarea grande en varias
pequeñas, ya que los módulos actuarían como uno solo al estar altamente
acoplados entre sí y se perdería el objetivo primordial dividir el proyecto.
Ventajas
● Trabajo ordenado.
● Modularidad.
● Se reduce la complejidad.
● Facilidad para distribuir el desarrollo del software.
● Mayor encapsulamiento.
● Alta Escalabilidad.
● Facilidad para desarrollar en múltiples plataformas (web, escritorio, móvil).
● Facilidad para encontrar errores.
● Facilita el trabajo en equipo.
● Reutilización de código.
16
Desventajas
● Cuando se implementa un modelo de programación en capas, se debe llegar
a un balance entre el número de capas y subcapas que componen el
programa. Este debe ser necesario para realizar un trabajo específico con
eficiencia y ser lo más modular posible.
● De lo contrario se tiene una serie de desventajas como: pérdida de eficiencia,
realización de trabajo innecesario o redundante entre capas, gasto de espacio
de la aplicación debido a la expansión de las capas, o bien una alta
dependencia entre los objetos y capas que contradice el objetivo principal del
modelo.
¿Qué es MVC?
MVC significa modelo (model), vista (view), controlador (controller).
Esto es lo que significan cada uno de esos componentes:
● Modelo: El backend que contiene toda la lógica de datos
● Vista: El frontend o interfaz gráfica de usuario (GUI)
● Controlador: El cerebro de la aplicación que controla como se muestran los
datos.
MVC
El concepto de MVC fue propuesto como una forma de desarrollar el GUI de
aplicaciones de escritorio. Hoy en día, el patrón MVC se utiliza para aplicaciones
web modernas porque permite que la aplicación sea escalable, mantenible y fácil de
expandir. El patrón MVC te ayuda a dividir el código frontend y backend en
componentes separados. De esta manera, es mucho más fácil administrar y hacer
cambios a cualquier lado sin que
interfieran entre sí.
17

Continuar navegando

Materiales relacionados