Publicado el 18 de Febrero del 2019
973 visualizaciones desde el 18 de Febrero del 2019
1,0 MB
21 paginas
Creado hace 11a (13/04/2013)
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Bruno López Takeyas
Instituto Tecnológico de
Nuevo Laredo
¿Se puede diseñar un sistema con
varios propósitos?
Supongamos que una empresa y una ferretería nos solicitan
un sistema computacional para administrar los empleados y
los artículos respectivamente.
¿Se puede hacer con el mismo diseño de proyecto?
Pero …
Son datos diferentes
Diferentes variables
Diferentes tipos de datos
Criterios de ordenamiento distintos
http://www.itnuevolaredo.edu.mx/Takeyas/libro
1
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
CONFERENCIA
1. Introducción al paradigma orientado
a objetos
2. Relaciones entre clases (herencia,
composición y agregación)
3. Ejemplos de aplicación: Lista de
empleados y lista de artículos
1ª. PARTE
INTRODUCCIÓN AL PARADIGMA
ORIENTADO A OBJETOS
http://www.itnuevolaredo.edu.mx/Takeyas/libro
2
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
1.- Introducción al paradigma
orientado a objetos
La POO es un conjunto de técnicas que pueden
programas
desarrollar
utilizarse
eficientemente.
para
Los objetos son los elementos principales de
construcción.
La Orientación a Objetos (OO) es el estilo
dominante de programación, descripción y
modelado de hoy en dia.
Objetos en el mundo real
Lavadora
Perro
Televisión
Persona
Factura
6
http://www.itnuevolaredo.edu.mx/Takeyas/libro
3
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Ejemplo: PERRO
Características:
Nombre: “FIDO”
Raza: “Chihuahua”
Color: “Café”
….etc…
Acciones:
[“Guau Guau”]
Ladrar
Comer [“Chomp Chomp”]
Dormir [“Zzzzzzzz”]
…etc…
7
¿Cómo modelar un objeto real en
un programa?
Las “características” son ATRIBUTOS (datos) o
PROPIEDADES.
Las “acciones” son MÉTODOS u operaciones.
FIDO : Perro
Nombre: FIDO
Raza: Chihuahua
Color: Café
Ladrar()
Comer()
Dormir()
Objeto Perro “Real”
Abstracción de un objeto“Perro”
en software
8
http://www.itnuevolaredo.edu.mx/Takeyas/libro
4
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Clases y Objetos
“FIDO” es UN “PERRO”
“FIDO” es del TIPO “PERRO”
“FIDO” es un OBJETO
“PERRO” es la CLASE de “FIDO”
“CHESTER” es OTRO “PERRO”
“CHESTER” también es del TIPO “PERRO”
“CHESTER” es otro OBJETO
“PERRO” también es la CLASE de “CHESTER”
9
Clase Es
de
una
descripción
las
características y acciones para un
tipo de objetos.
Una clase NO es un objeto. Es
o
solo
definición para crear objetos.
plantilla,
plano
una
A partir de una clase se pueden
crear
objetos
independientes con las mismas
características.
muchos
10
http://www.itnuevolaredo.edu.mx/Takeyas/libro
5
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Clases en UML
Cada clase se representa en un rectángulo
con tres compartimentos:
Nombre
Atributos y propiedades
Métodos
11
12
Objeto
Unidad que combina datos y funciones.
Datos = Propiedades = Atributos = Características
Funciones = Métodos = Procedimientos =Acciones
Un objeto es creado a partir de una clase.
Los datos y funciones están Encapsulados.
Posee un nombre único (identificador).
Un objeto es del tipo de una clase
“Un objeto es la instancia de una clase”
Un objeto es un ejemplar específico creado con la
estructura de una clase.
http://www.itnuevolaredo.edu.mx/Takeyas/libro
6
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
2ª. PARTE
RELACIONES ENTRE CLASES
(Herencia, composición y
agregación)
Herencia
Capacidad para utilizar características previstas en
antepasados o ascendientes.
Permite construir nuevas clases a partir de otras ya
existentes, permitiendo que éstas les “transmitan”
todos sus componentes.
Una subclase hereda el comportamiento y la estructura
de su Super Clase
14
http://www.itnuevolaredo.edu.mx/Takeyas/libro
7
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Representación de herencia en UML
Puede usarse para:
Relaciones del tipo “es
un”
Ejemplo: Un Gerente “es
con
propias
un”
características
adicionales.
Empleado
Objetivo: Reutilización de
código.
15
Ejemplo de herencia
class Empleado:Persona
{
….
}
class Administrador:Empleado
{
….
}
class Persona
{
….
}
class Estudiante:Persona
{
….
}
class Profesor:Empleado
{
….
}
16
http://www.itnuevolaredo.edu.mx/Takeyas/libro
8
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Clases parametrizadas o
genéricas
Ejemplo: Una empresa y una escuela desean
la clave y nombre de sus
almacenar
personas:
Clave: Entero ó String
Nombre: String
Pero en la empresa la clave es numérica
entera y en la escuela es una cadena.
Clases parametrizadas o genéricas
(cont.)
Clases iguales
(excepto en el tipo de dato de la clave)
Escuela
Empresa
17
18
http://www.itnuevolaredo.edu.mx/Takeyas/libro
9
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Clases parametrizadas o genéricas
(cont.)
Diseñar una clase parametrizada que sirva para ambos casos:
Asociación entre clases
Asociación
Composición
Agregación
19
20
http://www.itnuevolaredo.edu.mx/Takeyas/libro
10
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Ejemplos
21
Composición
Define una relación fuerte entre clases
Se utiliza para modelar un "todo" y sus
"partes" donde …
El "todo" no puede existir si no existen
sus
"partes"
Las "partes" desaparecen cuando se
elimina el "todo"
22
http://www.itnuevolaredo.edu.mx/Takeyas/libro
11
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Representación de la composición
Gráficamente se representa colocando un
rombo negro en el extremo de la clase
constituida (clase del “todo”).
23
Agregación
Define una relación débil donde una clase se
puede formar de otras clases
Sin embargo, la existencia de objetos de dichas
clases es independiente
Se utiliza para modelar un "todo" y sus "partes"
donde …
El "todo" se forma agregando sus "partes"
Las "partes" pueden pertenecer a varios "todos"
Si se elimina el "todo" pueden seguir existiendo sus
"partes"
24
http://www.itnuevolaredo.edu.mx/Takeyas/libro
12
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Representación de la agregación
Gráficamente se representa colocando un
rombo blanco en el extremo de la clase
constituida (clase del “todo”).
25
Interfaces
Son mecanismos para que puedan interactuar
varios objetos no relacionados entre sí
Son protocolos o “contratos” que obligan la
herencia
Contienen las declaraciones de los métodos, pero
no su implementación.
Son plantillas de comportamiento que deben ser
implementados por otras clases.
26
http://www.itnuevolaredo.edu.mx/Takeyas/libro
13
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Interfaces en C#
IComparable
IEquatable
IEnumerable
Y otras …
27
28
http://www.itnuevolaredo.edu.mx/Takeyas/libro
14
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
La interfaz IComparable
Contiene la declaración del método CompareTo()
interface IComparable
{
}
int CompareTo(object obj);
El método CompareTo() devuelve un valor entero
como resultado de la comparación
29
La interfaz IEquatable
Contiene la declaración del método Equals()
interface IEquatable<T>
{
}
bool Equals(T obj);
El método Equals() devuelve un valor
booleano como resultado de la comparación
30
http://www.itnuevolaredo.edu.mx/Takeyas/libro
15
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Uso de las interfaces IComparable
e IEquatable
31
3ª. PARTE
EJEMPLOS DE APLICACIÓN:
Lista de empleados y lista de
artículos
http://www.itnuevolaredo.edu.mx/Takeyas/libro
16
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Listas enlazadas simples
Estructura de datos compuesta de nodos en
través de una
a
secuencia
enlazados
referencia (apuntador).
Cada nodo se compone de 2 partes:
Datos
Referencia al siguiente nodo
Además, hay una referencia al primer nodo
de la lista y el último nodo apunta a nulo
33
Datos de los empleados
Crear una clase para
modelar un objeto con
datos de un empleado
Crear una lista que
muchos
almacene
empleados
Ordenarlos
descendentes
acuerdo al número
de
34
http://www.itnuevolaredo.edu.mx/Takeyas/libro
17
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Datos de los artículos
Crear una clase para
modelar un objeto
con datos de un
artículo
Crear una lista que
almacene muchos
artículos
Ordenarlos
ascendentes
acuerdo a la clave
de
35
Diseño genérico de la lista
http://www.itnuevolaredo.edu.mx/Takeyas/libro
18
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Insertar un empleado
Capturar los datos de
en
empleado
un
textBoxes
Al oprimir el botón
insertar,
un
objeto de
clase
Empleado e insertarlo
en la lista genérica
crear
la
Mostrar los datos en
un dataGridView
37
Insertar un artículo
Capturar los datos de
en
artículo
un
textBoxes
Al oprimir el botón
insertar,
un
objeto de
clase
Artículo e insertarlo
en la lista genérica
crear
la
Mostrar los datos en
un dataGridView
38
http://www.itnuevolaredo.edu.mx/Takeyas/libro
19
Conferencia: “Diseño de clases genéricas en C# .NET”
Ing. Bruno López Takeyas, M.C.
Creación de los objetos de las listas
ClaseListaSimpleOrdenada<Empleado>
ListaEmpleados = new
ClaseListaSimpleOrdenada<Empleado>();
ClaseLis
Comentarios de: Conferencia: Diseño de clases genéricas en C# .NET (0)
No hay comentarios