20260112 Refactorizar_AppClientesPedidos_2 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno
00:00:00
Pues
00:00:06
Venga, pues esta es la idea
00:00:09
No solo hacer las cosas
00:00:11
Sino
00:00:13
Diseñarlas
00:00:15
De tal manera
00:00:17
Que la aplicación
00:00:18
Quede un poquito más clara
00:00:21
Y más compartimentada
00:00:22
Incluso aquí
00:00:24
ya tendríamos
00:00:38
que cambiar un poco las cosas
00:00:39
porque ya aquí empieza a quedar
00:00:41
una clase con un montón de métodos
00:00:43
hombre, es mejor que una clase
00:00:46
con un único método larguísimo
00:00:48
mucho mejor que eso es una clase
00:00:49
con muchos métodos cortos
00:00:52
pero ya empezaría a quedar una clase con un montón de métodos
00:00:53
entonces, hombre
00:00:56
aquí sería lo ideal
00:00:58
decir, a ver, por ejemplo
00:01:00
aquí tengo un montón de métodos
00:01:02
en este caso son tres
00:01:04
pero podrían ser más si hubiéramos seguido refactorizando
00:01:06
que son agregar pedido a un cliente
00:01:08
mostrar el menú
00:01:12
leer cliente, mostrar clientes
00:01:14
o sea, tres de esos métodos auxiliares
00:01:18
mostrar menú no, mostrar menú ahí va muy bien porque
00:01:21
está relacionado con el main
00:01:23
pero el de agregar pedido, leer cliente
00:01:25
mostrar clientes, ya empiezan a ser muchos métodos
00:01:30
todos relacionados
00:01:33
con los datos, relacionados
00:01:36
con clientes, ¿no sería mejor
00:01:37
ya que son muchos hacer una clase
00:01:39
que agrupe todos los
00:01:41
métodos relacionados con tocar
00:01:43
los datos?
00:01:45
Pues sí, ya empezaría a ser
00:01:48
lo mejor, porque aquí ya empieza a haber muchos.
00:01:49
Entonces,
00:01:52
último
00:01:54
salto que hacemos.
00:01:55
Vamos a hacernos una clase
00:01:58
que agrupe todo lo relacionado
00:01:59
con tocar los datos
00:02:01
entonces uno se haría
00:02:03
aquí, pues teníamos
00:02:06
el paquete con el modelo, cliente
00:02:09
pedido, el paquete con el
00:02:11
main, ejer 22
00:02:13
en un caso real uno se haría otro
00:02:14
paquete con lo relacionado
00:02:17
con los datos, pues por ejemplo
00:02:19
vamos a hacernos aquí un paquete
00:02:22
ejer 22
00:02:23
punto datos
00:02:27
vale
00:02:28
entonces aquí iría todo relacionado con
00:02:30
los datos de la aplicación
00:02:33
Pues nos hacemos una aplicación
00:02:35
Por ejemplo
00:02:39
Acceso datos
00:02:43
Clientes pedidos
00:02:50
Un nombre un poco feo
00:02:52
Pero bueno
00:02:54
Vale, y aquí pongo otro relacionado con los datos
00:02:54
Lo pongo aquí ya aparte
00:03:03
Bueno, pues
00:03:05
¿Qué es lo relacionado con los datos?
00:03:06
Pues nos vamos a coger de este main
00:03:08
Que este main va adelgazando y se va quedando cada vez más pequeño
00:03:10
Que es la idea
00:03:13
Que el main vaya adelgazando
00:03:13
De este main
00:03:15
vamos a quitar esto
00:03:17
esto fuera
00:03:19
se va de mi main
00:03:24
fuera
00:03:27
hago ahí un control x
00:03:29
sin miedo
00:03:33
y aquí se queda
00:03:34
ahora
00:03:37
todos los métodos que tocan
00:03:39
estos datos, que meten clientes
00:03:42
que añaden pedidos, que recuperan
00:03:44
clientes, pues aquí
00:03:46
también, que cuáles eran
00:03:48
me voy al main
00:03:50
Y me hago yo sin ningún miedo
00:03:51
Mi corta y pega
00:03:54
Con todos estos
00:03:56
Leer cliente
00:03:57
Mostrar cliente
00:03:59
Todos estos sin miedo
00:04:00
Ahí
00:04:04
Y me falta
00:04:05
Este de
00:04:08
Agregar pedido
00:04:10
También
00:04:13
No, ese no, porque ese no tiene nada que ver con los datos
00:04:13
Fuera, sin miedo
00:04:18
Ahí se queda tan feliz
00:04:21
Entonces tengo mi clase
00:04:27
Y esta clase seguiría teniendo
00:04:29
Métodos como
00:04:38
Recupera cliente por nombre
00:04:39
Los que yo necesite
00:04:41
Elimina cliente, los que hagan falta
00:04:42
Irían todos ahí
00:04:45
Todos métodos estáticos
00:04:46
Pues muestra
00:04:48
El precio de los pedidos
00:04:51
De un cliente
00:04:53
Todos esos que tocan los datos irían todos aquí recogidos
00:04:54
Aquí tranquilamente
00:04:57
Y ahora mi clase main
00:05:00
llama a esos métodos
00:05:01
entonces, el de mostrar menú
00:05:05
no, este se queda aquí, porque este no tiene
00:05:06
que ver con los datos, este era mostrar un menú
00:05:08
y leer un entero, y ya está
00:05:10
este es un auxiliar para esto, ahí se queda tan feliz
00:05:12
y aquí ya se queda mi main
00:05:14
que cada vez que lo necesite
00:05:17
llama
00:05:19
a los datos, pues cuando
00:05:20
lo necesita, por ejemplo
00:05:24
aquí, esto
00:05:26
no es main, leer cliente
00:05:30
Si no ese nombre tan raro
00:05:32
Lo voy a copiar
00:05:35
Este nombre tan raro
00:05:35
Es que he puesto un nombre tan raro
00:05:42
Y ahora el array clientes
00:05:46
También, el array clientes está ahí también
00:05:48
Está ahí
00:05:51
¿Vale?
00:05:52
Lo que pasa es que claro, esto no lo haría así
00:05:59
Lo haría como agregar cliente
00:06:01
Es decir, ahora ya mi main
00:06:04
Yo aquí me haría
00:06:06
Un método
00:06:08
Que sería
00:06:10
Vale, me haría yo aquí
00:06:14
Vamos a hacerlo primero aquí para llamarlo
00:06:22
Tengo el método que leo un cliente
00:06:23
Vale, ahora vamos a hacer el método
00:06:26
Añadir cliente
00:06:28
Al array
00:06:30
Entonces
00:06:31
Pues
00:06:33
Por ejemplo
00:06:35
Aquí
00:06:37
Me puedo hacer
00:06:39
Public static
00:06:42
Agregar
00:06:44
Cliente nuevo
00:06:46
Entonces agregar cliente nuevo
00:06:47
¿Qué haría?
00:06:52
Static void, nada
00:06:54
Agregar cliente nuevo
00:06:55
Leería cliente, se apoya de este
00:06:58
Y lo metería en el array
00:07:00
Harían clientes
00:07:01
De siguiente posición
00:07:04
Libre
00:07:11
Este igual a
00:07:12
Leer
00:07:18
Cliente
00:07:21
¿Vale?
00:07:28
Me haría aquí en mis datos este método
00:07:30
Agregar un cliente nuevo
00:07:32
lee cliente, se apoya en este
00:07:34
y lo guarda en la
00:07:36
posición del array que toque y la deja
00:07:38
incrementada, vale
00:07:40
o sea, un método que trabaja
00:07:42
con estos datos, ahora
00:07:44
en mi main
00:07:46
en el caso 1, agregar cliente
00:07:47
y punto de pelota
00:07:50
pero había cambiado el nombre de la clase, pero con un nombre
00:07:51
tan largo, no se ve bien el código
00:07:58
con estas letras grandes
00:08:00
vale, voy a cambiar el nombre de la clase
00:08:01
acceso
00:08:03
datos clientes pedidos, la voy a llamar datos sin más para que se vea más claro
00:08:05
datos, cuando queréis cambiar el nombre de una clase y que
00:08:09
se cambie en todos los sitios en los que aparece
00:08:20
ya sabéis, botón derecho en la clase, refactor rename
00:08:25
botón derecho, refactor rename y se cambia en todas partes donde esa clase es referenciada
00:08:28
vale, ya le he cambiado al nombre datos
00:08:35
y ahora desde mi main, pues ya está
00:08:41
Haría datos
00:08:46
Punto a agregar cliente
00:08:48
No la tengo como public
00:08:52
Ok
00:08:57
Como los he copiado los tengo todos como privados
00:08:57
Efectivamente
00:09:01
Pues todos public
00:09:02
Ahora ya si desde mi main
00:09:04
Datos
00:09:22
Punto a agregar cliente nuevo
00:09:27
Ala ya esta
00:09:29
Entonces mi main va llamando
00:09:30
Simplemente a los métodos
00:09:33
datos, punto, mostrar clientes, caso 1, caso 2, ya está, caso 3, datos, punto, agregar pedido
00:09:35
y así podríamos modificar el resto, ¿vale? El resto ya lo dejo sin tocar, a partir de aquí,
00:09:47
Y como lo sube a la virtual, queda pendiente de hacer la refactorización para que estos casos llamen a la clase datos.
00:10:03
Vale, pues a partir del caso 4, pues habría que hacer lo mismo.
00:10:32
Pues este es un poco, dime.
00:10:44
datos, claro, porque está ahí
00:10:46
si es que necesitas llamarlo
00:10:51
directamente, pero en principio
00:10:53
la idea sería que no te hiciera
00:10:54
falta que incluso esto pudiera ser
00:10:57
privado, porque todos los accesos
00:10:59
al array se hagan
00:11:01
a través de métodos de aquí, agregar cliente
00:11:03
agregar pedido, recuperar pedido
00:11:05
todo se haga a través de métodos
00:11:06
entonces este puede estar
00:11:08
perfectamente aquí oculto porque
00:11:10
todo se va a ofrecer a través de los métodos
00:11:12
entonces esa es la idea
00:11:14
en general, que una aplicación tenga diferentes
00:11:16
clases, cada una engloba de lo que
00:11:18
se ocupa
00:11:20
y unas se pueden llamar a otras
00:11:21
de tal manera que me queden métodos
00:11:24
cortos
00:11:26
cada uno
00:11:28
las mínimas funciones posibles
00:11:29
cada método una función
00:11:32
no el método un montón de cosas
00:11:34
e irse llamándonos a otros
00:11:36
esta es la idea
00:11:38
luego claro, esto se tiene que
00:11:40
no se concreta por libre
00:11:41
cada uno lo hace por libre, al final se acaba
00:11:44
completando unos patrones de diseño
00:11:46
un poquito
00:11:47
más generales para todos
00:11:49
pero bueno, eso ya lo
00:11:52
veremos en segundo, lo importante ahora
00:11:53
es que cojáis la dinámica
00:11:56
de llamadas a métodos
00:11:58
de métodos estáticos y la idea
00:12:00
de que hay que
00:12:02
desacoplar y separar lo más posible
00:12:03
bueno, pues
00:12:05
eh
00:12:10
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 12 de enero de 2026 - 21:03
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 12′ 17″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 66.57 MBytes