1 00:00:00,050 --> 00:00:06,710 Bueno 2 00:00:06,710 --> 00:00:09,029 Pues 3 00:00:09,029 --> 00:00:11,470 Venga, pues esta es la idea 4 00:00:11,470 --> 00:00:13,890 No solo hacer las cosas 5 00:00:13,890 --> 00:00:15,369 Sino 6 00:00:15,369 --> 00:00:17,089 Diseñarlas 7 00:00:17,089 --> 00:00:18,329 De tal manera 8 00:00:18,329 --> 00:00:21,530 Que la aplicación 9 00:00:21,530 --> 00:00:22,710 Quede un poquito más clara 10 00:00:22,710 --> 00:00:24,449 Y más compartimentada 11 00:00:24,449 --> 00:00:38,020 Incluso aquí 12 00:00:38,020 --> 00:00:39,659 ya tendríamos 13 00:00:39,659 --> 00:00:41,700 que cambiar un poco las cosas 14 00:00:41,700 --> 00:00:43,880 porque ya aquí empieza a quedar 15 00:00:43,880 --> 00:00:46,119 una clase con un montón de métodos 16 00:00:46,119 --> 00:00:48,460 hombre, es mejor que una clase 17 00:00:48,460 --> 00:00:49,960 con un único método larguísimo 18 00:00:49,960 --> 00:00:52,060 mucho mejor que eso es una clase 19 00:00:52,060 --> 00:00:53,960 con muchos métodos cortos 20 00:00:53,960 --> 00:00:56,640 pero ya empezaría a quedar una clase con un montón de métodos 21 00:00:56,640 --> 00:00:58,100 entonces, hombre 22 00:00:58,100 --> 00:01:00,219 aquí sería lo ideal 23 00:01:00,219 --> 00:01:02,299 decir, a ver, por ejemplo 24 00:01:02,299 --> 00:01:04,579 aquí tengo un montón de métodos 25 00:01:04,579 --> 00:01:06,180 en este caso son tres 26 00:01:06,180 --> 00:01:08,840 pero podrían ser más si hubiéramos seguido refactorizando 27 00:01:08,840 --> 00:01:12,099 que son agregar pedido a un cliente 28 00:01:12,099 --> 00:01:14,780 mostrar el menú 29 00:01:14,780 --> 00:01:18,739 leer cliente, mostrar clientes 30 00:01:18,739 --> 00:01:21,099 o sea, tres de esos métodos auxiliares 31 00:01:21,099 --> 00:01:23,620 mostrar menú no, mostrar menú ahí va muy bien porque 32 00:01:23,620 --> 00:01:25,299 está relacionado con el main 33 00:01:25,299 --> 00:01:30,459 pero el de agregar pedido, leer cliente 34 00:01:30,459 --> 00:01:33,840 mostrar clientes, ya empiezan a ser muchos métodos 35 00:01:33,840 --> 00:01:36,060 todos relacionados 36 00:01:36,060 --> 00:01:37,939 con los datos, relacionados 37 00:01:37,939 --> 00:01:39,879 con clientes, ¿no sería mejor 38 00:01:39,879 --> 00:01:41,620 ya que son muchos hacer una clase 39 00:01:41,620 --> 00:01:43,900 que agrupe todos los 40 00:01:43,900 --> 00:01:45,760 métodos relacionados con tocar 41 00:01:45,760 --> 00:01:46,400 los datos? 42 00:01:48,019 --> 00:01:49,939 Pues sí, ya empezaría a ser 43 00:01:49,939 --> 00:01:51,480 lo mejor, porque aquí ya empieza a haber muchos. 44 00:01:52,900 --> 00:01:53,579 Entonces, 45 00:01:54,599 --> 00:01:55,099 último 46 00:01:55,099 --> 00:01:57,540 salto que hacemos. 47 00:01:58,340 --> 00:01:59,819 Vamos a hacernos una clase 48 00:01:59,819 --> 00:02:01,879 que agrupe todo lo relacionado 49 00:02:01,879 --> 00:02:03,340 con tocar los datos 50 00:02:03,340 --> 00:02:06,159 entonces uno se haría 51 00:02:06,159 --> 00:02:09,879 aquí, pues teníamos 52 00:02:09,879 --> 00:02:11,860 el paquete con el modelo, cliente 53 00:02:11,860 --> 00:02:13,759 pedido, el paquete con el 54 00:02:13,759 --> 00:02:14,860 main, ejer 22 55 00:02:14,860 --> 00:02:17,840 en un caso real uno se haría otro 56 00:02:17,840 --> 00:02:19,879 paquete con lo relacionado 57 00:02:19,879 --> 00:02:22,000 con los datos, pues por ejemplo 58 00:02:22,000 --> 00:02:23,599 vamos a hacernos aquí un paquete 59 00:02:23,599 --> 00:02:27,099 ejer 22 60 00:02:27,099 --> 00:02:28,659 punto datos 61 00:02:28,659 --> 00:02:30,020 vale 62 00:02:30,020 --> 00:02:33,319 entonces aquí iría todo relacionado con 63 00:02:33,319 --> 00:02:35,699 los datos de la aplicación 64 00:02:35,699 --> 00:02:39,419 Pues nos hacemos una aplicación 65 00:02:39,419 --> 00:02:43,580 Por ejemplo 66 00:02:43,580 --> 00:02:50,490 Acceso datos 67 00:02:50,490 --> 00:02:52,629 Clientes pedidos 68 00:02:52,629 --> 00:02:54,150 Un nombre un poco feo 69 00:02:54,150 --> 00:02:54,830 Pero bueno 70 00:02:54,830 --> 00:03:03,669 Vale, y aquí pongo otro relacionado con los datos 71 00:03:03,669 --> 00:03:05,909 Lo pongo aquí ya aparte 72 00:03:05,909 --> 00:03:06,830 Bueno, pues 73 00:03:06,830 --> 00:03:08,349 ¿Qué es lo relacionado con los datos? 74 00:03:08,849 --> 00:03:10,569 Pues nos vamos a coger de este main 75 00:03:10,569 --> 00:03:13,169 Que este main va adelgazando y se va quedando cada vez más pequeño 76 00:03:13,169 --> 00:03:13,870 Que es la idea 77 00:03:13,870 --> 00:03:15,789 Que el main vaya adelgazando 78 00:03:15,789 --> 00:03:17,389 De este main 79 00:03:17,389 --> 00:03:19,949 vamos a quitar esto 80 00:03:19,949 --> 00:03:24,270 esto fuera 81 00:03:24,270 --> 00:03:27,050 se va de mi main 82 00:03:27,050 --> 00:03:29,030 fuera 83 00:03:29,030 --> 00:03:33,840 hago ahí un control x 84 00:03:33,840 --> 00:03:34,419 sin miedo 85 00:03:34,419 --> 00:03:37,099 y aquí se queda 86 00:03:37,099 --> 00:03:39,379 ahora 87 00:03:39,379 --> 00:03:42,039 todos los métodos que tocan 88 00:03:42,039 --> 00:03:44,120 estos datos, que meten clientes 89 00:03:44,120 --> 00:03:46,199 que añaden pedidos, que recuperan 90 00:03:46,199 --> 00:03:48,159 clientes, pues aquí 91 00:03:48,159 --> 00:03:50,139 también, que cuáles eran 92 00:03:50,139 --> 00:03:51,139 me voy al main 93 00:03:51,139 --> 00:03:54,159 Y me hago yo sin ningún miedo 94 00:03:54,159 --> 00:03:56,180 Mi corta y pega 95 00:03:56,180 --> 00:03:57,939 Con todos estos 96 00:03:57,939 --> 00:03:59,159 Leer cliente 97 00:03:59,159 --> 00:04:00,919 Mostrar cliente 98 00:04:00,919 --> 00:04:04,620 Todos estos sin miedo 99 00:04:04,620 --> 00:04:05,419 Ahí 100 00:04:05,419 --> 00:04:08,550 Y me falta 101 00:04:08,550 --> 00:04:10,810 Este de 102 00:04:10,810 --> 00:04:13,050 Agregar pedido 103 00:04:13,050 --> 00:04:13,969 También 104 00:04:13,969 --> 00:04:18,290 No, ese no, porque ese no tiene nada que ver con los datos 105 00:04:18,290 --> 00:04:21,170 Fuera, sin miedo 106 00:04:21,170 --> 00:04:27,750 Ahí se queda tan feliz 107 00:04:27,750 --> 00:04:29,430 Entonces tengo mi clase 108 00:04:29,430 --> 00:04:38,420 Y esta clase seguiría teniendo 109 00:04:38,420 --> 00:04:39,279 Métodos como 110 00:04:39,279 --> 00:04:41,579 Recupera cliente por nombre 111 00:04:41,579 --> 00:04:42,620 Los que yo necesite 112 00:04:42,620 --> 00:04:45,439 Elimina cliente, los que hagan falta 113 00:04:45,439 --> 00:04:46,360 Irían todos ahí 114 00:04:46,360 --> 00:04:48,639 Todos métodos estáticos 115 00:04:48,639 --> 00:04:51,180 Pues muestra 116 00:04:51,180 --> 00:04:53,819 El precio de los pedidos 117 00:04:53,819 --> 00:04:54,660 De un cliente 118 00:04:54,660 --> 00:04:57,740 Todos esos que tocan los datos irían todos aquí recogidos 119 00:04:57,740 --> 00:05:00,220 Aquí tranquilamente 120 00:05:00,220 --> 00:05:01,399 Y ahora mi clase main 121 00:05:01,399 --> 00:05:05,240 llama a esos métodos 122 00:05:05,240 --> 00:05:06,980 entonces, el de mostrar menú 123 00:05:06,980 --> 00:05:08,879 no, este se queda aquí, porque este no tiene 124 00:05:08,879 --> 00:05:10,860 que ver con los datos, este era mostrar un menú 125 00:05:10,860 --> 00:05:12,699 y leer un entero, y ya está 126 00:05:12,699 --> 00:05:14,740 este es un auxiliar para esto, ahí se queda tan feliz 127 00:05:14,740 --> 00:05:17,000 y aquí ya se queda mi main 128 00:05:17,000 --> 00:05:19,079 que cada vez que lo necesite 129 00:05:19,079 --> 00:05:20,060 llama 130 00:05:20,060 --> 00:05:24,550 a los datos, pues cuando 131 00:05:24,550 --> 00:05:26,569 lo necesita, por ejemplo 132 00:05:26,569 --> 00:05:30,569 aquí, esto 133 00:05:30,569 --> 00:05:32,230 no es main, leer cliente 134 00:05:32,230 --> 00:05:35,129 Si no ese nombre tan raro 135 00:05:35,129 --> 00:05:35,970 Lo voy a copiar 136 00:05:35,970 --> 00:05:42,120 Este nombre tan raro 137 00:05:42,120 --> 00:05:46,420 Es que he puesto un nombre tan raro 138 00:05:46,420 --> 00:05:48,920 Y ahora el array clientes 139 00:05:48,920 --> 00:05:51,079 También, el array clientes está ahí también 140 00:05:51,079 --> 00:05:52,079 Está ahí 141 00:05:52,079 --> 00:05:53,180 ¿Vale? 142 00:05:59,339 --> 00:06:01,579 Lo que pasa es que claro, esto no lo haría así 143 00:06:01,579 --> 00:06:03,339 Lo haría como agregar cliente 144 00:06:04,360 --> 00:06:06,959 Es decir, ahora ya mi main 145 00:06:06,959 --> 00:06:08,379 Yo aquí me haría 146 00:06:08,379 --> 00:06:10,339 Un método 147 00:06:10,339 --> 00:06:14,810 Que sería 148 00:06:14,810 --> 00:06:22,170 Vale, me haría yo aquí 149 00:06:22,170 --> 00:06:23,750 Vamos a hacerlo primero aquí para llamarlo 150 00:06:23,750 --> 00:06:26,110 Tengo el método que leo un cliente 151 00:06:26,110 --> 00:06:28,389 Vale, ahora vamos a hacer el método 152 00:06:28,389 --> 00:06:30,470 Añadir cliente 153 00:06:30,470 --> 00:06:31,810 Al array 154 00:06:31,810 --> 00:06:33,110 Entonces 155 00:06:33,110 --> 00:06:35,329 Pues 156 00:06:35,329 --> 00:06:37,310 Por ejemplo 157 00:06:37,310 --> 00:06:39,509 Aquí 158 00:06:39,509 --> 00:06:42,750 Me puedo hacer 159 00:06:42,750 --> 00:06:44,050 Public static 160 00:06:44,050 --> 00:06:46,449 Agregar 161 00:06:46,449 --> 00:06:47,889 Cliente nuevo 162 00:06:47,889 --> 00:06:52,990 Entonces agregar cliente nuevo 163 00:06:52,990 --> 00:06:53,670 ¿Qué haría? 164 00:06:54,209 --> 00:06:55,910 Static void, nada 165 00:06:55,910 --> 00:06:58,490 Agregar cliente nuevo 166 00:06:58,490 --> 00:07:00,410 Leería cliente, se apoya de este 167 00:07:00,410 --> 00:07:01,569 Y lo metería en el array 168 00:07:01,569 --> 00:07:04,329 Harían clientes 169 00:07:04,329 --> 00:07:11,269 De siguiente posición 170 00:07:11,269 --> 00:07:12,230 Libre 171 00:07:12,230 --> 00:07:18,649 Este igual a 172 00:07:18,649 --> 00:07:21,970 Leer 173 00:07:21,970 --> 00:07:28,439 Cliente 174 00:07:28,439 --> 00:07:29,860 ¿Vale? 175 00:07:30,379 --> 00:07:32,379 Me haría aquí en mis datos este método 176 00:07:32,379 --> 00:07:34,439 Agregar un cliente nuevo 177 00:07:34,439 --> 00:07:36,759 lee cliente, se apoya en este 178 00:07:36,759 --> 00:07:38,699 y lo guarda en la 179 00:07:38,699 --> 00:07:40,420 posición del array que toque y la deja 180 00:07:40,420 --> 00:07:42,459 incrementada, vale 181 00:07:42,459 --> 00:07:44,759 o sea, un método que trabaja 182 00:07:44,759 --> 00:07:46,740 con estos datos, ahora 183 00:07:46,740 --> 00:07:47,439 en mi main 184 00:07:47,439 --> 00:07:50,959 en el caso 1, agregar cliente 185 00:07:50,959 --> 00:07:51,779 y punto de pelota 186 00:07:51,779 --> 00:07:58,129 pero había cambiado el nombre de la clase, pero con un nombre 187 00:07:58,129 --> 00:08:00,029 tan largo, no se ve bien el código 188 00:08:00,029 --> 00:08:01,149 con estas letras grandes 189 00:08:01,149 --> 00:08:03,990 vale, voy a cambiar el nombre de la clase 190 00:08:03,990 --> 00:08:05,930 acceso 191 00:08:05,930 --> 00:08:09,550 datos clientes pedidos, la voy a llamar datos sin más para que se vea más claro 192 00:08:09,550 --> 00:08:20,009 datos, cuando queréis cambiar el nombre de una clase y que 193 00:08:20,009 --> 00:08:25,470 se cambie en todos los sitios en los que aparece 194 00:08:25,470 --> 00:08:28,790 ya sabéis, botón derecho en la clase, refactor rename 195 00:08:28,790 --> 00:08:35,429 botón derecho, refactor rename y se cambia en todas partes donde esa clase es referenciada 196 00:08:35,429 --> 00:08:41,639 vale, ya le he cambiado al nombre datos 197 00:08:41,639 --> 00:08:46,200 y ahora desde mi main, pues ya está 198 00:08:46,200 --> 00:08:48,440 Haría datos 199 00:08:48,440 --> 00:08:52,940 Punto a agregar cliente 200 00:08:52,940 --> 00:08:57,419 No la tengo como public 201 00:08:57,419 --> 00:08:57,720 Ok 202 00:08:57,720 --> 00:09:01,860 Como los he copiado los tengo todos como privados 203 00:09:01,860 --> 00:09:02,659 Efectivamente 204 00:09:02,659 --> 00:09:04,759 Pues todos public 205 00:09:04,759 --> 00:09:22,649 Ahora ya si desde mi main 206 00:09:22,649 --> 00:09:27,220 Datos 207 00:09:27,220 --> 00:09:29,179 Punto a agregar cliente nuevo 208 00:09:29,179 --> 00:09:30,019 Ala ya esta 209 00:09:30,019 --> 00:09:33,379 Entonces mi main va llamando 210 00:09:33,379 --> 00:09:35,399 Simplemente a los métodos 211 00:09:35,399 --> 00:09:47,899 datos, punto, mostrar clientes, caso 1, caso 2, ya está, caso 3, datos, punto, agregar pedido 212 00:09:47,899 --> 00:10:03,490 y así podríamos modificar el resto, ¿vale? El resto ya lo dejo sin tocar, a partir de aquí, 213 00:10:03,490 --> 00:10:28,340 Y como lo sube a la virtual, queda pendiente de hacer la refactorización para que estos casos llamen a la clase datos. 214 00:10:32,220 --> 00:10:35,919 Vale, pues a partir del caso 4, pues habría que hacer lo mismo. 215 00:10:44,960 --> 00:10:46,779 Pues este es un poco, dime. 216 00:10:46,779 --> 00:10:51,399 datos, claro, porque está ahí 217 00:10:51,399 --> 00:10:53,139 si es que necesitas llamarlo 218 00:10:53,139 --> 00:10:54,820 directamente, pero en principio 219 00:10:54,820 --> 00:10:57,080 la idea sería que no te hiciera 220 00:10:57,080 --> 00:10:59,139 falta que incluso esto pudiera ser 221 00:10:59,139 --> 00:11:01,559 privado, porque todos los accesos 222 00:11:01,559 --> 00:11:03,080 al array se hagan 223 00:11:03,080 --> 00:11:05,240 a través de métodos de aquí, agregar cliente 224 00:11:05,240 --> 00:11:06,740 agregar pedido, recuperar pedido 225 00:11:06,740 --> 00:11:08,340 todo se haga a través de métodos 226 00:11:08,340 --> 00:11:10,820 entonces este puede estar 227 00:11:10,820 --> 00:11:12,600 perfectamente aquí oculto porque 228 00:11:12,600 --> 00:11:14,799 todo se va a ofrecer a través de los métodos 229 00:11:14,799 --> 00:11:16,639 entonces esa es la idea 230 00:11:16,639 --> 00:11:18,799 en general, que una aplicación tenga diferentes 231 00:11:18,799 --> 00:11:20,679 clases, cada una engloba de lo que 232 00:11:20,679 --> 00:11:21,279 se ocupa 233 00:11:21,279 --> 00:11:24,179 y unas se pueden llamar a otras 234 00:11:24,179 --> 00:11:26,700 de tal manera que me queden métodos 235 00:11:26,700 --> 00:11:28,080 cortos 236 00:11:28,080 --> 00:11:29,779 cada uno 237 00:11:29,779 --> 00:11:32,759 las mínimas funciones posibles 238 00:11:32,759 --> 00:11:34,240 cada método una función 239 00:11:34,240 --> 00:11:36,340 no el método un montón de cosas 240 00:11:36,340 --> 00:11:38,279 e irse llamándonos a otros 241 00:11:38,279 --> 00:11:40,320 esta es la idea 242 00:11:40,320 --> 00:11:41,539 luego claro, esto se tiene que 243 00:11:41,539 --> 00:11:44,080 no se concreta por libre 244 00:11:44,080 --> 00:11:46,179 cada uno lo hace por libre, al final se acaba 245 00:11:46,179 --> 00:11:47,879 completando unos patrones de diseño 246 00:11:47,879 --> 00:11:49,480 un poquito 247 00:11:49,480 --> 00:11:52,240 más generales para todos 248 00:11:52,240 --> 00:11:53,519 pero bueno, eso ya lo 249 00:11:53,519 --> 00:11:56,039 veremos en segundo, lo importante ahora 250 00:11:56,039 --> 00:11:58,279 es que cojáis la dinámica 251 00:11:58,279 --> 00:12:00,340 de llamadas a métodos 252 00:12:00,340 --> 00:12:02,139 de métodos estáticos y la idea 253 00:12:02,139 --> 00:12:03,759 de que hay que 254 00:12:03,759 --> 00:12:05,740 desacoplar y separar lo más posible 255 00:12:05,740 --> 00:12:10,960 bueno, pues 256 00:12:10,960 --> 00:12:11,980 eh