1
00:00:10,620 --> 00:00:12,630
Hola te saluda Ubaldo Acosta.

2
00:00:13,020 --> 00:00:16,640
Bienvenidos nuevamente a este curso de programación con.

3
00:00:16,650 --> 00:00:20,690
A continuación vamos a describir el laboratorio final de este curso.

4
00:00:20,970 --> 00:00:21,800
Están listos.

5
00:00:21,900 --> 00:00:22,350
Vamos

6
00:00:25,420 --> 00:00:27,960
diagrama de clases de laboratorio final.

7
00:00:28,210 --> 00:00:34,240
En este laboratorio al final vamos a crear un ejercicio que simule un catálogo de películas para este

8
00:00:34,240 --> 00:00:35,080
ejercicio.

9
00:00:35,080 --> 00:00:41,200
Vamos a almacenar la información del catálogo de películas en un archivo de texto y este archivo lo

10
00:00:41,200 --> 00:00:44,540
vamos a depositar en una carpeta definida por nosotros.

11
00:00:44,590 --> 00:00:51,550
Por ejemplo la carpeta hace dos puntos diagonal inversa catálogo de películas y el archivo lo depositamos

12
00:00:51,700 --> 00:00:56,850
dentro de esa carpeta y el archivo se puede llamar películas punto txt.

13
00:00:56,950 --> 00:01:03,830
Vamos a crear varios paquetes cada uno con tareas específicas a desarrollar en el programa El primer

14
00:01:03,830 --> 00:01:09,770
paquete que vamos a crear es el paquete decepciones y similar a la lección decepciones vistas en el

15
00:01:09,770 --> 00:01:12,440
curso según mostramos en este diagrama.

16
00:01:12,440 --> 00:01:19,490
Vamos a crear el paquete de MX con G.M películas excepciones y dentro de este paquete vamos a crear

17
00:01:19,490 --> 00:01:27,560
las excepciones acceso a datos X escritura datos X y lectura datos X.

18
00:01:27,740 --> 00:01:33,620
Posteriormente vamos a crear el paquete con las clases de Domaine en este caso de paquete MX punto com

19
00:01:33,620 --> 00:01:40,130
punto G.M. punto películas punto Domain y dentro de este paquete definimos la clase película así que

20
00:01:40,130 --> 00:01:43,640
estas van a ser las clases de dominio de nuestro sistema.

21
00:01:43,760 --> 00:01:50,420
Posteriormente vamos a crear el paquete MX con G.M. punto películas punto datos y este paquete va a

22
00:01:50,420 --> 00:01:55,790
contener lo siguiente Por un lado va a tener la interfase acceso datos y por otro lado una clase que

23
00:01:55,790 --> 00:01:59,830
implemente dicha interfase llamada acceso datos.

24
00:01:59,870 --> 00:02:05,390
El objetivo de estas clases es agregar la funcionalidad para interactuar con el archivo donde se va

25
00:02:05,390 --> 00:02:11,120
a guardar la información del catálogo de películas como siguiente paso creamos el paquete de negocio

26
00:02:11,560 --> 00:02:17,480
y este paquete incluye la interfaz de catálogo películas y también una clase que implementa dicha interfase

27
00:02:17,510 --> 00:02:20,870
llamado catálogo películas Impy.

28
00:02:21,080 --> 00:02:26,930
Este paquete lo vamos a utilizar para aplicar las reglas de negocio de nuestra aplicación y finalmente

29
00:02:26,930 --> 00:02:33,380
vamos a crear un paquete llamado CPJ laboratorio final el cual significa curso de programación Java

30
00:02:34,310 --> 00:02:40,940
y también vamos a crear una clase que va a contener el método main llamada CPJ laboratorio final.

31
00:02:40,970 --> 00:02:46,730
A continuación vamos a ver a más detalle cada uno de los paquetes de la aplicación catálogo de películas

32
00:02:46,790 --> 00:02:47,570
a desarrollar

33
00:02:51,640 --> 00:02:53,770
clase de película apuntó IAVA.

34
00:02:53,770 --> 00:02:59,860
Esta clase nos servirá para representar el objeto película en esta aplicación vamos a dejar muy simple

35
00:03:00,040 --> 00:03:02,170
la definición de este objeto.

36
00:03:02,320 --> 00:03:08,470
Sin embargo podría tener más atributos y hacer más compleja esta aplicación pero el objetivo es que

37
00:03:08,470 --> 00:03:14,890
podamos desarrollar esta aplicación con la estructura planteada y no agregar más complejidad de la necesaria

38
00:03:15,130 --> 00:03:19,310
para aplicar los conceptos estudiados a lo largo de este curso.

39
00:03:19,330 --> 00:03:25,480
Por ello este objeto se debe codificar con lo indicado en el diagrama de clase mostrado así que esta

40
00:03:25,480 --> 00:03:31,270
clase contiene un atributo llamado nombre de tipo string y podemos observar que es de tipo privado y

41
00:03:31,270 --> 00:03:37,510
también va a contener dos constructores el constructor vacío de tipo públic y el constructor de un argumento

42
00:03:37,660 --> 00:03:43,960
de tipo string llamado nombre este es el argumento que va a recibir este constructor.

43
00:03:43,990 --> 00:03:46,240
Y también es de tipo público.

44
00:03:46,310 --> 00:03:51,710
También definimos los métodos jet set para el atributo de nombre y agregamos el método autodestruye

45
00:03:51,800 --> 00:03:58,490
a esta clase el cual internamente va a imprimir el atributo de nombre y las responsabilidades de esta

46
00:03:58,490 --> 00:04:04,580
clase es que representa a los objetos película utilizados en la aplicación catálogo de películas

47
00:04:07,780 --> 00:04:14,700
como siguiente paso vamos a ver la interfase acceso a datos punto IAVA esta interfase define los métodos

48
00:04:14,910 --> 00:04:19,080
para interactuar con el archivo que administrará el catálogo de películas.

49
00:04:19,290 --> 00:04:19,890
La clase.

50
00:04:19,890 --> 00:04:25,980
Acceso a Datos Inc. es la que finalmente se encargará de agregar el comportamiento de cada uno de los

51
00:04:25,980 --> 00:04:29,160
métodos descritos en esta interfase.

52
00:04:29,160 --> 00:04:35,190
A partir de este proyecto empezaremos a separar los paquetes y clases según la funcionalidad de cada

53
00:04:35,190 --> 00:04:36,450
una de ellas.

54
00:04:36,570 --> 00:04:42,540
En el caso del paquete de acceso a datos su función es definir la forma en que se interactúa con el

55
00:04:42,540 --> 00:04:45,900
archivo que es donde se almacenará la información.

56
00:04:45,900 --> 00:04:51,480
Sin embargo el uso de interfaces y su implementación empieza a tomar importancia debido a que en cursos

57
00:04:51,480 --> 00:04:55,860
posteriores vamos a aplicar precisamente este tipo de conceptos.

58
00:04:55,860 --> 00:05:02,980
Por ejemplo en el curso de IAVA con JDBC cuando empezamos a guardar información en bases de datos por

59
00:05:02,980 --> 00:05:08,530
ello es importante definir la interfase que es la que contiene los métodos que se utilizarán por otras

60
00:05:08,530 --> 00:05:09,970
clases en la aplicación.

61
00:05:10,570 --> 00:05:16,210
Pero la implementación podemos definir cuál es la que se va a utilizar por ejemplo que guarde la información

62
00:05:16,240 --> 00:05:21,930
en un archivo o alguna otra implementación que guarde la información en una base de datos.

63
00:05:21,970 --> 00:05:28,330
La interface será la misma pero podríamos tener distintas implementaciones y como hemos comentado una

64
00:05:28,330 --> 00:05:33,730
de las implementaciones podría guardar la información simplemente en un archivo de texto pero otra de

65
00:05:33,730 --> 00:05:40,300
las implementaciones podría guardar esta información en una base de datos y así definimos una misma

66
00:05:40,300 --> 00:05:45,040
interfase pero distintas implementaciones y ya depende de nuestro programa.

67
00:05:45,040 --> 00:05:47,850
Cuál es la implementación que va a utilizar.

68
00:05:47,860 --> 00:05:53,650
Por último cabe mencionar que la implementación de esta interfase es completamente técnica respecto

69
00:05:53,650 --> 00:05:59,140
al uso de manejos de archivos por lo que a diferencia del paquete de negocios que veremos a continuación

70
00:05:59,590 --> 00:06:05,080
el paquete de datos realiza las tareas más técnicas que tienen que ver con la manipulación directa del

71
00:06:05,080 --> 00:06:06,250
archivo.

72
00:06:06,250 --> 00:06:12,100
En cambio el paquete de negocios se encarga más de definir las operaciones y funcionalidad desde el

73
00:06:12,100 --> 00:06:17,800
punto de vista de lo que necesita realizar la aplicación pero de alguna manera no le interesa si la

74
00:06:17,800 --> 00:06:24,520
información se almacena o proviene de un archivo ya que de eso se encargará precisamente este paquete

75
00:06:24,520 --> 00:06:25,240
de datos

76
00:06:28,800 --> 00:06:36,900
catálogo de películas punto IAVA en el paquete mostrado DMX con G.M. películas negocio.

77
00:06:37,100 --> 00:06:43,160
Contiene las clases que implementarán las reglas de negocio de nuestra aplicación y a su vez este es

78
00:06:43,160 --> 00:06:49,490
el paquete que será el intermediario entre la interfaz con el usuario es decir el método Mail y el guardado

79
00:06:49,490 --> 00:06:54,840
de la información es decir el paquete de datos similar al paquete de datos.

80
00:06:54,860 --> 00:06:59,220
Este paquete hemos agregado también una interfaz y una implementación.

81
00:06:59,510 --> 00:07:05,930
De esta manera la interfase de usuario es decir el método Mainat hará uso de la interface y será la

82
00:07:05,930 --> 00:07:12,620
implementación de catãlogo películas IMQ quien finalmente ejecutará las tareas necesarias para esta

83
00:07:12,620 --> 00:07:14,070
aplicación.

84
00:07:14,180 --> 00:07:20,560
A su vez la implementación del catálogo de películas será quien utilice la interfase acceso datos punto

85
00:07:20,560 --> 00:07:27,230
IAVA por lo que al hacer uso de interfaces es que en cualquier momento podríamos cambiar la implementación

86
00:07:27,470 --> 00:07:31,800
y afectar lo menos posible al código que hemos programado.

87
00:07:31,910 --> 00:07:38,870
A esta característica se le conoce como bajo acoplamiento ya que un cambio en un componente o una clase

88
00:07:39,080 --> 00:07:46,010
afecta lo menos posible a otras clases así que es sólo una de las muchas ventajas de programar utilizando

89
00:07:46,040 --> 00:07:52,400
interfaces y no utilizar directamente la implementación de la funcionalidad que necesitamos.

90
00:07:52,490 --> 00:07:56,570
Este tipo de conceptos lo vamos a empezar a aplicar en cursos posteriores.

91
00:07:56,570 --> 00:07:59,090
Por ejemplo en el curso de IAVA con JDBC

92
00:08:02,660 --> 00:08:09,000
clase Mayne esta clase representa la interfase con la que el usuario va a interactuar.

93
00:08:09,020 --> 00:08:15,410
Esta clase solicita vía consola la acción requerida por parte del usuario y solicita opciones como iniciar

94
00:08:15,410 --> 00:08:24,080
catálogo de películas agregar una película listar películas buscar una película y salir y dependiendo

95
00:08:24,080 --> 00:08:30,720
de la opción elegida por el usuario es la acción que vamos a ejecutar esta clase se apoya de la clase

96
00:08:30,720 --> 00:08:36,570
catãlogo películas para realizar las operaciones que necesita esta aplicación.

97
00:08:36,570 --> 00:08:42,450
A su vez la variable opción es la que se encargará de almacenar la opción seleccionada por parte del

98
00:08:42,450 --> 00:08:48,270
usuario y el nombre del archivo indica la ruta donde se almacenará el archivo.

99
00:08:48,270 --> 00:08:54,630
Por ejemplo la cadena aullaba que se puede utilizar si estamos en Windows es C dos puntos doble diagonal

100
00:08:54,660 --> 00:09:01,110
invertida catãlogo películas doble diagonal invertida películas punto txt.

101
00:09:01,170 --> 00:09:07,800
Sin embargo si es otro sistema operativo como MAC o s o Linux debemos utilizar la diagonal hacia adelante

102
00:09:08,660 --> 00:09:15,390
y podríamos utilizar una ruta utilizando el mismo nombre de folder diagonal catálogo películas diagonal

103
00:09:15,420 --> 00:09:17,760
películas punto txt.

104
00:09:17,850 --> 00:09:23,910
Debemos recordar que la carpeta sobre la que vayamos a trabajar ya debe estar creada y en caso necesario

105
00:09:24,150 --> 00:09:30,240
debe tener permisos de escritura aunque esto depende del sistema operativo sobre el cual estemos trabajando

106
00:09:35,030 --> 00:09:36,590
salida del programa.

107
00:09:36,590 --> 00:09:43,670
Según hemos comentado el menú de opciones mostrado al usuario son iniciar catãlogo películas agregar

108
00:09:43,670 --> 00:09:52,490
película listar películas buscar película y salir por ejemplo si introducimos la opción 2 entonces nos

109
00:09:52,490 --> 00:09:58,190
solicita introduce el nombre de una película a agregar y posteriormente proporcionamos el nombre de

110
00:09:58,190 --> 00:10:03,860
la película por ejemplo Batman y podemos observar que nos debe demostrar se ha escrito correctamente

111
00:10:03,920 --> 00:10:10,340
al archivo así que como vemos dependiendo de la opción elegida por el usuario es la acción que vamos

112
00:10:10,340 --> 00:10:11,450
a ejecutar.

113
00:10:11,450 --> 00:10:16,390
Así que este es el menú que debemos programar para que el usuario pueda interactuar con la aplicación

114
00:10:18,920 --> 00:10:20,750
también podremos tener otra opción.

115
00:10:20,750 --> 00:10:27,440
Por ejemplo si mostramos el menú y ahora selecciona la opción 3 listar películas entonces nos debe demostrar

116
00:10:27,500 --> 00:10:28,970
el listado de películas.

117
00:10:28,970 --> 00:10:35,240
En este caso nos está mostrando la película que hemos agregado la película de Batman así que tenemos

118
00:10:35,240 --> 00:10:41,060
todo listo para comenzar a realizar la aplicación de catálogo de películas aunque les vamos a agregar

119
00:10:41,060 --> 00:10:47,180
la solución de este laboratorio al final se les solicita aplicar todo el esfuerzo posible para realizar

120
00:10:47,180 --> 00:10:53,330
correctamente este laboratorio y solamente en caso de que tengan problemas pueden apoyarse de la solución

121
00:10:53,450 --> 00:10:54,650
de este laboratorio.

122
00:10:54,710 --> 00:11:02,150
Esto para que puedan aplicar los conceptos que hemos visto en este curso de programación con Java así

123
00:11:02,150 --> 00:11:07,910
que manos a la obra y te deseamos el mayor éxito en la realización de este laboratorio a final del curso

124
00:11:07,910 --> 00:11:09,050
de programación collados.
