1 00:00:00,940 --> 00:00:07,099 Voy a grabar un vídeo, por lo tanto, si habláis, me dais la autorización a grabar vuestra voz, ¿vale? 2 00:00:07,160 --> 00:00:13,839 Entonces, vamos a corregir el examen del 13 de febrero, que me he equivocado y he puesto enero. 3 00:00:16,839 --> 00:00:23,960 Entonces, esto es el enunciado. Decíamos que queríamos hacer un archivo de documentos directos. 4 00:00:23,960 --> 00:00:29,640 Si necesitáis que en algún momento me pare o tenéis dudas sobre lo que estoy haciendo, paradme, ¿vale? 5 00:00:29,640 --> 00:00:33,259 Es decir, me lo interrumpo la grabación eventualmente y os contesto 6 00:00:33,259 --> 00:00:35,000 O lo grabamos y ya está 7 00:00:35,000 --> 00:00:41,939 Entonces, la idea es que haya documentos secretos y hay operadores que trabajen con estos documentos 8 00:00:41,939 --> 00:00:42,880 Vale, fenomenal 9 00:00:42,880 --> 00:00:45,280 Empezamos con la interfaz autorizada 10 00:00:45,280 --> 00:00:49,539 La interfaz autorizada la necesito, por lo tanto me creo una nueva interfaz 11 00:00:49,539 --> 00:00:52,060 Que sea la interfaz autorizada 12 00:00:52,060 --> 00:00:56,179 Y esta interfaz 13 00:00:56,179 --> 00:00:59,280 Tenga 14 00:00:59,280 --> 00:01:02,439 Tenga este método de aquí 15 00:01:02,439 --> 00:01:03,159 Entonces 16 00:01:03,159 --> 00:01:05,379 Public int 17 00:01:05,379 --> 00:01:07,379 Autorización 18 00:01:07,379 --> 00:01:11,620 .com 19 00:01:11,620 --> 00:01:12,500 ¿Vale? 20 00:01:13,319 --> 00:01:15,840 Es una interfaz, por lo tanto no tiene que 21 00:01:15,840 --> 00:01:17,280 Implementar esto, ¿vale? 22 00:01:17,340 --> 00:01:19,319 Tiene que ser solo una interfaz, se queda allí 23 00:01:19,319 --> 00:01:21,420 Y ya veremos cuando la 24 00:01:21,420 --> 00:01:23,000 La implementaremos 25 00:01:23,000 --> 00:01:25,159 Donde la tenemos que implementar, ¿vale? 26 00:01:25,680 --> 00:01:26,079 Fenómeno 27 00:01:26,079 --> 00:01:27,519 Cuarto 28 00:01:27,519 --> 00:01:29,140 Siguiente 29 00:01:29,140 --> 00:01:32,000 Aquí define que hace este método 30 00:01:32,000 --> 00:01:34,319 Pero claro, este método se tendrá que implementar 31 00:01:34,319 --> 00:01:36,540 Allá donde haya un objeto 32 00:01:36,540 --> 00:01:38,040 Que implemente esta interfaz 33 00:01:38,040 --> 00:01:38,379 ¿Vale? 34 00:01:38,659 --> 00:01:43,439 ¿Podría hacer una implementación por defecto? 35 00:01:43,500 --> 00:01:46,739 No, porque no tengo el int que tengo que devolver 36 00:01:46,739 --> 00:01:48,579 Podría hacer una implementación por defecto 37 00:01:48,579 --> 00:01:49,659 Que devuelva siempre 38 00:01:49,659 --> 00:01:51,980 Que no estás autorizado 39 00:01:51,980 --> 00:01:54,819 Pero ¿qué número representa que no estás autorizado? 40 00:01:55,060 --> 00:01:55,459 Ninguno 41 00:01:55,459 --> 00:02:02,680 Podría inventarme que el "-1", o sea, si el número es negativo, quiere decir que no tienes autorización nunca, ¿vale? 42 00:02:02,680 --> 00:02:07,719 Pero esto no me lo dice por ningún lado, por lo tanto, no hago una implementación por defecto, ¿vale? 43 00:02:07,840 --> 00:02:24,740 Voy a la clase Operador, clase Operador, creo una nueva clase, la clase la llamo Operador, esto representa un operador, ¿vale? 44 00:02:24,740 --> 00:02:33,580 que tiene se caracteriza por su nombre vale entonces string nombre punto y 45 00:02:33,580 --> 00:02:50,219 coma public operator al que le doy un string nombre y lo que me crea es un 46 00:02:50,219 --> 00:02:52,180 Dis.nombre 47 00:02:52,180 --> 00:02:54,240 Es igual a nombre 48 00:02:54,240 --> 00:02:58,650 ¿Vale? 49 00:02:58,930 --> 00:03:00,949 Y poco más, porque la clase operador 50 00:03:00,949 --> 00:03:02,210 No puede hacer nada más 51 00:03:02,210 --> 00:03:04,550 ¿Sí? Entonces esta es la clase operador 52 00:03:04,550 --> 00:03:05,330 Vale 53 00:03:05,330 --> 00:03:07,949 Luego está operador autorizado 54 00:03:07,949 --> 00:03:10,330 Por lo tanto, creo una nueva clase 55 00:03:10,330 --> 00:03:13,030 Bueno, puedo hasta copiar esta 56 00:03:13,030 --> 00:03:16,250 No, he copiado hoy la que no es 57 00:03:16,250 --> 00:03:17,189 Esta 58 00:03:17,189 --> 00:03:18,990 Control-C, Control-V 59 00:03:18,990 --> 00:03:22,050 Operador autorizado 60 00:03:22,050 --> 00:03:32,520 Abro operador autorizado 61 00:03:32,520 --> 00:03:34,379 Y tengo las mismas cosas 62 00:03:34,379 --> 00:03:37,080 La única cosa es que 63 00:03:37,080 --> 00:03:38,340 Este de aquí 64 00:03:38,340 --> 00:03:39,979 Extende 65 00:03:39,979 --> 00:03:42,439 Operador 66 00:03:42,439 --> 00:03:46,460 Y además 67 00:03:46,460 --> 00:03:48,860 Añade el nivel 68 00:03:48,860 --> 00:03:49,819 De autorización 69 00:03:49,819 --> 00:03:53,060 Entonces tendrá un int 70 00:03:53,060 --> 00:03:56,819 Nivel autorización 71 00:03:56,819 --> 00:04:02,840 Entonces cuando creo un operador autorizado 72 00:04:02,840 --> 00:04:04,060 Además del nombre 73 00:04:04,060 --> 00:04:06,860 Le paso un int 74 00:04:06,860 --> 00:04:08,580 Nibout 75 00:04:08,580 --> 00:04:14,180 ¿Dudas? 76 00:04:14,639 --> 00:04:16,620 ¿Cómo funcionará este de aquí? 77 00:04:16,839 --> 00:04:17,680 ¿Qué hago ahí dentro? 78 00:04:19,220 --> 00:04:20,019 Supernombre 79 00:04:20,019 --> 00:04:24,089 Utilizo el constructor 80 00:04:24,089 --> 00:04:25,870 De mi superclase que 81 00:04:25,870 --> 00:04:28,370 Pilla nombre, por lo tanto me rellena nombre 82 00:04:28,370 --> 00:04:29,870 Y después 83 00:04:29,870 --> 00:04:32,189 Dis.nibout 84 00:04:32,189 --> 00:04:41,329 Cuando creo un operador autorizado 85 00:04:41,329 --> 00:04:42,569 Tengo su nombre y su nivel 86 00:04:42,569 --> 00:04:45,930 El nombre lo utilizo para crear un operador 87 00:04:45,930 --> 00:04:47,029 Con ese nombre 88 00:04:47,029 --> 00:04:49,670 Y luego el nivel de autorización 89 00:04:49,670 --> 00:04:50,589 Para el nivel de autorización 90 00:04:50,589 --> 00:04:52,350 ¿Dudas? 91 00:04:53,889 --> 00:04:54,170 Vale 92 00:04:54,170 --> 00:04:57,529 Además, este señor tiene que implementar 93 00:04:57,529 --> 00:04:58,189 Autorizado 94 00:04:58,189 --> 00:05:00,649 ¿Vale? Ningún problema, puedo extender 95 00:05:00,649 --> 00:05:03,149 Operador e implementar 96 00:05:03,149 --> 00:05:06,290 autorizado 97 00:05:06,290 --> 00:05:07,889 ¿vale? 98 00:05:08,170 --> 00:05:09,810 para implementar autorizado 99 00:05:09,810 --> 00:05:12,290 necesita implementar 100 00:05:12,290 --> 00:05:13,170 este método de aquí 101 00:05:13,170 --> 00:05:16,189 entonces 102 00:05:16,189 --> 00:05:17,889 aquí debajo 103 00:05:17,889 --> 00:05:21,160 me creo 104 00:05:21,160 --> 00:05:22,860 este señor de aquí 105 00:05:22,860 --> 00:05:24,879 que lo que hará es 106 00:05:24,879 --> 00:05:38,540 dudas 107 00:05:38,540 --> 00:05:40,300 este de aquí 108 00:05:40,300 --> 00:05:48,800 así evito que la gente 109 00:05:48,800 --> 00:05:50,779 acceda inoportunamente 110 00:05:50,779 --> 00:05:52,360 Su nivel de autorización 111 00:05:52,360 --> 00:05:53,259 Y se lo cambie 112 00:05:53,259 --> 00:05:54,839 ¿Sí? 113 00:05:55,160 --> 00:05:56,459 Ah, yo no lo he metido 114 00:05:56,459 --> 00:05:58,399 Fallito 115 00:05:58,399 --> 00:06:00,639 Pequeño 116 00:06:00,639 --> 00:06:01,800 ¿Sí? 117 00:06:02,300 --> 00:06:03,079 Este de aquí 118 00:06:03,079 --> 00:06:04,360 Está pensado justo 119 00:06:04,360 --> 00:06:05,699 Para que yo pueda acceder 120 00:06:05,699 --> 00:06:06,699 A este objeto 121 00:06:06,699 --> 00:06:08,160 Pero no lo pueda modificar 122 00:06:08,160 --> 00:06:09,199 En un cierto sentido 123 00:06:09,199 --> 00:06:10,079 ¿Vale? 124 00:06:10,699 --> 00:06:11,120 Ok 125 00:06:11,120 --> 00:06:12,180 También el nombre 126 00:06:12,180 --> 00:06:13,060 Podría ser privado 127 00:06:13,060 --> 00:06:14,360 Para no cambiarme el nombre 128 00:06:14,360 --> 00:06:14,660 Pero 129 00:06:14,660 --> 00:06:17,540 Esto es más interesante 130 00:06:17,540 --> 00:06:18,139 Que sea privado 131 00:06:18,139 --> 00:06:19,139 Por respecto a que sea privado 132 00:06:19,139 --> 00:06:19,439 El nombre 133 00:06:19,439 --> 00:06:22,420 Entonces 134 00:06:22,420 --> 00:06:24,839 Sigo con este de aquí 135 00:06:24,839 --> 00:06:27,079 Vale, entonces la parte de los operadores 136 00:06:27,079 --> 00:06:29,560 Ya lo he hecho, luego ya los utilizaré 137 00:06:29,560 --> 00:06:30,120 En futuro 138 00:06:30,120 --> 00:06:32,920 Ahora voy a la parte de los documentos 139 00:06:32,920 --> 00:06:34,860 Entonces me dice que tengo un documento 140 00:06:34,860 --> 00:06:36,879 Con estos atributos de aquí 141 00:06:36,879 --> 00:06:47,610 Entonces creo una nueva 142 00:06:48,149 --> 00:06:49,810 Clase 143 00:06:49,810 --> 00:06:51,610 La clase documento 144 00:06:52,449 --> 00:06:55,269 La clase documento 145 00:06:55,269 --> 00:06:56,930 Que tiene, tiene un 146 00:06:56,930 --> 00:06:58,370 String id 147 00:06:58,370 --> 00:07:00,529 Tiene un int 148 00:07:00,529 --> 00:07:01,949 Nivel 149 00:07:01,949 --> 00:07:06,069 Confidencialidad 150 00:07:06,069 --> 00:07:09,050 Y tengo un string 151 00:07:09,050 --> 00:07:09,970 Contenido 152 00:07:09,970 --> 00:07:13,129 Cuando creo un nuevo 153 00:07:13,129 --> 00:07:15,250 Documento, que hago, no lo sé 154 00:07:15,250 --> 00:07:17,370 Porque aquí me dice que no puedo 155 00:07:17,370 --> 00:07:18,870 Crear un nuevo documento, vale 156 00:07:18,870 --> 00:07:21,149 Puedo utilizar un 157 00:07:21,149 --> 00:07:22,990 Constructor, si, public 158 00:07:22,990 --> 00:07:24,550 Documento 159 00:07:24,550 --> 00:07:27,990 que recibe una string id 160 00:07:27,990 --> 00:07:30,610 string int 161 00:07:30,610 --> 00:07:33,110 nivel confidencialidad 162 00:07:33,110 --> 00:07:37,069 y string contenido 163 00:07:37,069 --> 00:07:40,110 que hace esta cosa aquí 164 00:07:40,110 --> 00:07:51,680 para inicializar 165 00:07:51,680 --> 00:07:52,920 id es igual a 166 00:07:52,920 --> 00:07:53,339 dis.id 167 00:07:53,339 --> 00:07:56,220 es igual a id 168 00:07:56,220 --> 00:08:01,839 dis.nivel 169 00:08:01,839 --> 00:08:15,480 ¿Qué más tiene que hacer? 170 00:08:15,660 --> 00:08:18,639 Tiene que implementar la interfaz 171 00:08:18,639 --> 00:08:19,680 Mostrable 172 00:08:19,680 --> 00:08:20,759 Que todavía no tengo 173 00:08:20,759 --> 00:08:21,980 Entonces por ahora lo dejo así 174 00:08:21,980 --> 00:08:24,540 Y luego hago la interfaz mostrable 175 00:08:24,540 --> 00:08:25,720 Y luego lo implemento 176 00:08:25,720 --> 00:08:28,259 Y la otra cosa interesante 177 00:08:28,259 --> 00:08:30,860 Es que no se pueden crear instancias de documento 178 00:08:30,860 --> 00:08:31,779 ¿Por qué he hecho esto? 179 00:08:31,839 --> 00:08:34,740 ¿Cómo hago para que no se creen instancias 180 00:08:34,740 --> 00:08:36,220 De este documento? 181 00:08:41,970 --> 00:08:42,210 ¡Vale! 182 00:08:42,529 --> 00:08:44,309 Ya no se pueden crear documentos 183 00:08:44,309 --> 00:08:48,870 De hecho, los documentos no tienen sentido 184 00:08:48,870 --> 00:08:50,509 Yo no quiero documentos 185 00:08:50,509 --> 00:08:52,610 Yo quiero audio o textos 186 00:08:52,610 --> 00:08:54,669 A lo mejor en un futuro 187 00:08:54,669 --> 00:08:56,470 Pondrán vídeos, pondrán cosas 188 00:08:56,470 --> 00:08:58,570 Pero documento por sí mismo es sólo 189 00:08:58,570 --> 00:09:01,009 Un comodín que yo gestiono 190 00:09:01,009 --> 00:09:02,929 Ahora, ¿un comodín abstracto no puede 191 00:09:02,929 --> 00:09:04,110 Tener un constructor? Sí 192 00:09:04,110 --> 00:09:07,929 Porque yo luego desde cualquier otro tipo de documento 193 00:09:07,929 --> 00:09:09,330 Llamaré super 194 00:09:09,330 --> 00:09:11,230 De este constructor de aquí 195 00:09:11,230 --> 00:09:14,509 Pero no estoy construyendo un documento 196 00:09:14,509 --> 00:09:15,529 Estoy construyendo un audio 197 00:09:15,529 --> 00:09:16,710 Estoy construyendo un lo que sea 198 00:09:16,710 --> 00:09:18,870 ¿Si? 199 00:09:19,950 --> 00:09:20,669 Entonces 200 00:09:20,669 --> 00:09:23,409 Pausa en documento 201 00:09:23,409 --> 00:09:24,990 Y voy a la interfaz mostrable 202 00:09:24,990 --> 00:09:26,269 Creo 203 00:09:26,269 --> 00:09:29,149 Una nueva interfaz 204 00:09:29,149 --> 00:09:30,809 Que me diga 205 00:09:30,809 --> 00:09:32,610 Que se llame mostrable 206 00:09:32,610 --> 00:09:37,539 Esta de aquí 207 00:09:37,539 --> 00:09:38,799 Tiene dentro 208 00:09:38,799 --> 00:09:41,240 Public void 209 00:09:41,240 --> 00:09:42,340 Mostrar 210 00:09:42,340 --> 00:09:44,240 The object 211 00:09:44,240 --> 00:09:48,549 Oh, vale 212 00:09:48,549 --> 00:09:50,990 Vuelvo a 213 00:09:50,990 --> 00:09:58,620 Sí, vuelvo a 214 00:09:58,620 --> 00:09:59,659 Documento y digo 215 00:09:59,659 --> 00:10:01,820 Documento, tú implementas 216 00:10:01,820 --> 00:10:04,720 Mostrable 217 00:10:04,720 --> 00:10:08,240 Teniendo en cuenta que 218 00:10:08,240 --> 00:10:09,659 Al ser abstracta 219 00:10:10,360 --> 00:10:12,980 No me importa 220 00:10:12,980 --> 00:10:15,659 Implementar el mostrable 221 00:10:15,659 --> 00:10:17,019 Porque 222 00:10:17,019 --> 00:10:19,879 Yo he importado este señor de aquí 223 00:10:19,879 --> 00:10:24,259 Si aquí no lo implemento 224 00:10:24,259 --> 00:10:26,340 Él lo considerará como si fuera 225 00:10:26,340 --> 00:10:28,000 Si fuera un extracto 226 00:10:28,000 --> 00:10:29,240 Y me lo deja para 227 00:10:29,240 --> 00:10:31,740 No eres tú quien lo implementa 228 00:10:31,740 --> 00:10:33,399 Será una 229 00:10:33,399 --> 00:10:36,120 ¿Cómo se dice? 230 00:10:37,039 --> 00:10:39,320 Una heredada 231 00:10:39,320 --> 00:10:40,740 Que lo tendrá que implementar 232 00:10:40,740 --> 00:10:42,899 Porque él sabe que, vale, no me lo has implementado 233 00:10:42,899 --> 00:10:45,200 Sí, pero en ningún momento creerá esto 234 00:10:45,200 --> 00:10:46,779 Os recuerdo que aquí 235 00:10:46,779 --> 00:10:47,799 ¿Qué está escrito aquí? 236 00:10:48,720 --> 00:10:57,960 Aquí está escrito abstract 237 00:10:57,960 --> 00:11:00,220 Las interfaces 238 00:11:00,220 --> 00:11:03,080 Son todos métodos abstractos 239 00:11:03,080 --> 00:11:03,399 ¿Vale? 240 00:11:03,720 --> 00:11:07,279 Son tan abstractos que ni siquiera lo pongo abstract 241 00:11:07,279 --> 00:11:08,440 Porque asumo que si estoy 242 00:11:08,440 --> 00:11:10,019 Identificando una interface 243 00:11:10,019 --> 00:11:12,639 Aquí seguramente son todos abstractos 244 00:11:12,639 --> 00:11:13,700 Sus métodos 245 00:11:13,700 --> 00:11:16,379 Entonces es como si hubiese creado este método abstracto 246 00:11:16,379 --> 00:11:17,879 En esa clase abstracta 247 00:11:17,879 --> 00:11:19,820 Y es perfectamente legítimo 248 00:11:19,820 --> 00:11:22,139 Crear un método abstracto en una clase abstracta 249 00:11:22,139 --> 00:11:23,399 La pregunta es 250 00:11:23,399 --> 00:11:24,860 ¿Lo implemento aquí o no? 251 00:11:25,740 --> 00:11:27,159 Es decir, ¿puedo 252 00:11:27,159 --> 00:11:31,100 El mostrable por cómo tiene que funcionar 253 00:11:31,100 --> 00:11:32,419 Mostrarlo aquí 254 00:11:32,419 --> 00:11:33,340 Crearlo aquí 255 00:11:33,340 --> 00:11:36,179 O es mejor que espere y lo haga más adelante 256 00:11:36,179 --> 00:11:37,379 Y a lo mejor 257 00:11:37,379 --> 00:11:38,620 No lo sé 258 00:11:38,620 --> 00:11:42,779 Yo creo que esperar es más sencillo 259 00:11:42,779 --> 00:11:45,220 Creo que también es posible 260 00:11:45,220 --> 00:11:48,159 De alguna forma hacerlo a este nivel 261 00:11:48,159 --> 00:11:49,879 Pero se complica la cosa 262 00:11:49,879 --> 00:11:51,519 ¿Vale? 263 00:11:52,000 --> 00:11:54,360 Y no gano casi nada 264 00:11:54,360 --> 00:11:55,299 A implementarlo aquí 265 00:11:55,299 --> 00:11:57,299 Porque el discurso es que luego 266 00:11:57,299 --> 00:11:58,259 Por lo que dice aquí 267 00:11:58,259 --> 00:12:01,360 Este mostrar tiene un comportamiento distinto 268 00:12:01,360 --> 00:12:02,759 Si es en texto o en audio 269 00:12:02,759 --> 00:12:05,679 Entonces me compensa crearlo directamente 270 00:12:05,679 --> 00:12:06,620 En texto o en audio 271 00:12:06,620 --> 00:12:08,679 Y tirar del polimorfismo 272 00:12:08,679 --> 00:12:10,539 Esta es la parte de diseño 273 00:12:10,539 --> 00:12:12,519 En que se está preguntando 274 00:12:12,519 --> 00:12:13,940 ¿Has entendido algo del polimorfismo? 275 00:12:15,220 --> 00:12:17,279 Entonces 276 00:12:17,279 --> 00:12:19,539 A ver 277 00:12:19,539 --> 00:12:22,379 Entonces por ahora lo dejo así 278 00:12:22,379 --> 00:12:24,000 Si luego tengo que retocarlo 279 00:12:24,000 --> 00:12:25,600 Volveré al documento otra vez 280 00:12:25,600 --> 00:12:27,539 Me voy a mostrar 281 00:12:27,539 --> 00:12:30,159 Ya lo he creado y te dice que tiene que hacer 282 00:12:30,159 --> 00:12:32,159 Con todo esto del operador 283 00:12:32,159 --> 00:12:33,759 Autorizado, etc, etc, etc 284 00:12:33,759 --> 00:12:35,139 Pues 285 00:12:35,139 --> 00:12:38,299 Me lo pregunto 286 00:12:38,299 --> 00:12:54,629 Vale 287 00:12:54,629 --> 00:12:56,649 Vamos a ver como lo hacemos 288 00:12:56,649 --> 00:12:58,570 Luego vemos si lo mejoramos o no 289 00:12:58,570 --> 00:13:32,629 Entonces, vamos, sigamos adelante con texto, texto tiene dentro, extende, perdón, documento, y me dice ya, oye, mira, cuidado que hay cosas raras, ¿vale? 290 00:13:32,629 --> 00:13:56,370 Entonces vamos a crear un texto, public texto, para crear un texto que necesito lo mismo que el documento, string ente contenido, y luego también la cosa extra, que era el número de páginas. 291 00:13:56,370 --> 00:14:19,419 Entonces un texto tiene int num páginas, que me lo paso por aquí, int num páginas, y aquí dentro lo que haré es super d y d, nc, contenido. 292 00:14:19,419 --> 00:14:21,700 Utilizo 293 00:14:21,700 --> 00:14:23,820 El constructor de documento 294 00:14:23,820 --> 00:14:25,460 Para crear la parte 295 00:14:25,460 --> 00:14:27,580 Digamos que es relacionada con documento 296 00:14:27,580 --> 00:14:28,240 Y luego 297 00:14:28,240 --> 00:14:30,899 This.numpad 298 00:14:30,899 --> 00:14:33,700 Es igual a np 299 00:14:33,700 --> 00:14:36,379 ¿Vale? 300 00:14:38,200 --> 00:14:39,559 Entonces ya tengo esto 301 00:14:39,559 --> 00:14:40,860 Me dice también que 302 00:14:40,860 --> 00:14:42,080 El tipo texto 303 00:14:42,080 --> 00:14:44,120 Tiene que implementar 304 00:14:44,120 --> 00:14:47,159 El método abstracto ineditado 305 00:14:47,159 --> 00:14:49,519 Mostrable.mostrar 306 00:14:49,519 --> 00:14:50,919 ¿Sí? 307 00:14:51,279 --> 00:14:53,039 Entonces lo voy a implementar 308 00:14:53,039 --> 00:14:56,139 Public 309 00:14:56,139 --> 00:14:58,720 Void 310 00:14:58,720 --> 00:15:01,460 Mostrar 311 00:15:01,460 --> 00:15:03,799 Object 312 00:15:03,799 --> 00:15:04,600 O 313 00:15:04,600 --> 00:15:09,159 Y ¿qué tengo que hacer? ¿Vale? 314 00:15:09,659 --> 00:15:10,899 Esto de aquí me dice si 315 00:15:10,899 --> 00:15:14,139 Tened en cuenta que esto de aquí es un método 316 00:15:14,139 --> 00:15:16,100 Que se está 317 00:15:16,100 --> 00:15:17,960 Ejecutando sobre un objeto 318 00:15:17,960 --> 00:15:20,179 texto, vale, y que se le 319 00:15:20,179 --> 00:15:22,039 pasa un objeto o, vale 320 00:15:22,039 --> 00:15:24,159 este objeto o es un operador 321 00:15:24,159 --> 00:15:26,039 y yo tengo que comprobar 322 00:15:26,039 --> 00:15:27,740 si este operador es un operador y si 323 00:15:27,740 --> 00:15:29,919 me vale, vale, entonces 324 00:15:29,919 --> 00:15:31,700 la primera cosa que voy a hacer 325 00:15:31,700 --> 00:15:34,179 es comprobar si lo que me han 326 00:15:34,179 --> 00:15:35,940 pasado es alguien que 327 00:15:35,940 --> 00:15:37,779 podría de alguna forma 328 00:15:37,779 --> 00:15:40,159 hacer lo que yo quiero hacer, como lo hago 329 00:15:40,159 --> 00:15:42,659 if 330 00:15:42,659 --> 00:15:57,399 primera trampa del día 331 00:15:57,399 --> 00:16:04,049 y que 332 00:16:04,049 --> 00:16:12,950 Hacemos por partes 333 00:16:12,950 --> 00:16:15,429 Luego optimización en otro momento 334 00:16:15,429 --> 00:16:17,470 Cuidado, esto podría ser null 335 00:16:17,470 --> 00:16:29,559 Si yo te paso cuando llamo a mostrar de null 336 00:16:29,559 --> 00:16:31,679 O mostrar de un objeto que no está analizado 337 00:16:31,679 --> 00:16:33,279 Podría ser null 338 00:16:33,279 --> 00:16:35,399 Entonces cuidado con lo que hacemos 339 00:16:35,399 --> 00:16:38,220 O instance of null 340 00:16:38,220 --> 00:16:39,100 ¿Qué hace? 341 00:16:39,100 --> 00:16:41,639 Perdón, null instance of 342 00:16:41,639 --> 00:16:44,039 Operador autorizado 343 00:16:44,039 --> 00:16:44,460 ¿Qué hace? 344 00:16:46,460 --> 00:16:47,440 Ni idea 345 00:16:47,440 --> 00:16:49,240 ¿Vale? Entonces solo pruebo 346 00:16:49,240 --> 00:16:52,039 O si no le pongo aquí simplemente 347 00:16:52,039 --> 00:16:53,259 Si O 348 00:16:53,259 --> 00:16:54,799 No es null 349 00:16:54,799 --> 00:16:57,440 Y 350 00:16:57,440 --> 00:16:59,700 O instance of es 351 00:16:59,700 --> 00:17:00,080 Operador 352 00:17:00,080 --> 00:17:04,000 Autorizado, pues aquí dentro 353 00:17:04,000 --> 00:17:05,579 Estaría 354 00:17:05,579 --> 00:17:07,759 En un sistema 355 00:17:07,759 --> 00:17:08,839 En el que 356 00:17:08,839 --> 00:17:11,319 efectivamente el objeto que me han pasado 357 00:17:11,319 --> 00:17:13,359 es correcto, no es 358 00:17:13,359 --> 00:17:15,359 null y es 359 00:17:15,359 --> 00:17:16,599 un operador autorizado 360 00:17:16,599 --> 00:17:18,420 por lo tanto ya aquí puedo 361 00:17:18,420 --> 00:17:21,500 ir a mirar si efectivamente 362 00:17:21,500 --> 00:17:23,220 él es un operador 363 00:17:23,220 --> 00:17:25,359 correcto, si le puedo enseñar las cosas o no 364 00:17:25,359 --> 00:17:26,059 si no 365 00:17:26,059 --> 00:17:33,569 ¿qué hago aquí? 366 00:17:37,039 --> 00:17:38,660 no tienes acceso 367 00:17:38,660 --> 00:17:43,279 fijaos que es un void, entonces no devuelve 368 00:17:43,279 --> 00:17:44,819 nada, entonces se asume que el 369 00:17:44,819 --> 00:17:46,900 Mostrarlo, escriba directamente 370 00:17:46,900 --> 00:17:48,740 De hecho lo dice, no, cuando yo mostrar 371 00:17:48,740 --> 00:17:50,500 Tiene que escribir esta cosa por pantalla 372 00:17:50,500 --> 00:17:51,920 Por lo tanto, si 373 00:17:51,920 --> 00:17:53,920 El objeto es null 374 00:17:53,920 --> 00:17:56,480 O el objeto no es instancia 375 00:17:56,480 --> 00:17:58,660 De operador autorizado 376 00:17:58,660 --> 00:17:59,960 Vete directamente aquí 377 00:17:59,960 --> 00:18:02,140 Y le dices, no tienes acceso 378 00:18:02,140 --> 00:18:05,799 ¿Dudas? 379 00:18:06,599 --> 00:18:10,259 ¿Y qué pasa si en vez 380 00:18:10,259 --> 00:18:12,839 Esto es verdad? Entonces estoy en la situación 381 00:18:12,839 --> 00:18:14,460 En que ahora tengo que comprobar 382 00:18:14,460 --> 00:18:16,440 Si, ok, eres un operador autorizado 383 00:18:16,440 --> 00:18:18,079 Pero hay que ver 384 00:18:18,079 --> 00:18:20,200 Si tu autorización, nivel de autorización 385 00:18:20,200 --> 00:18:21,259 Es correcto o no 386 00:18:21,259 --> 00:18:24,160 ¿Vale? Entonces aquí dentro sería 387 00:18:24,160 --> 00:18:24,539 Sí 388 00:18:24,539 --> 00:18:31,970 Ahora puedo hacer un casting, ¿vale? 389 00:18:32,009 --> 00:18:34,730 Porque como sé que este de aquí es un operador 390 00:18:34,730 --> 00:18:36,109 Autorizado, puedo castear 391 00:18:36,109 --> 00:18:37,390 Pues entonces 392 00:18:37,390 --> 00:18:44,529 Operador 393 00:18:44,529 --> 00:18:46,150 Autorizado 394 00:18:46,150 --> 00:18:48,930 De o 395 00:18:48,930 --> 00:18:51,190 Punto 396 00:18:51,190 --> 00:18:52,869 Y fijaos que ahora aquí 397 00:18:52,869 --> 00:18:54,970 Salen los métodos como si fuera 398 00:18:54,970 --> 00:18:55,950 Un operador autorizado 399 00:18:55,950 --> 00:18:57,269 Incluido 400 00:18:57,269 --> 00:19:00,549 Get, como se llama, autorización 401 00:19:00,549 --> 00:19:01,190 ¿Vale? 402 00:19:01,809 --> 00:19:03,329 Esta autorización me da 403 00:19:03,329 --> 00:19:06,529 El nivel de autorización del objeto 404 00:19:06,529 --> 00:19:07,369 O 405 00:19:07,369 --> 00:19:09,450 Y lo comparo con que 406 00:19:09,450 --> 00:19:12,170 Si este nivel de autorización es por ejemplo 407 00:19:12,170 --> 00:19:14,450 Menor, o sea tiene más autorización 408 00:19:15,029 --> 00:19:16,309 Que que 409 00:19:16,309 --> 00:19:18,450 Igual 410 00:19:19,069 --> 00:19:22,660 De quien 411 00:19:22,660 --> 00:19:24,400 Que documento 412 00:19:24,819 --> 00:19:29,269 Dice punto 413 00:19:29,269 --> 00:19:30,970 Nivel confidencialidad 414 00:19:30,970 --> 00:19:33,369 No, porque este objeto lo tiene 415 00:19:33,369 --> 00:19:34,369 Lo tiene 416 00:19:34,369 --> 00:19:40,380 Porque tú lo estás llegando de este objeto aquí 417 00:19:40,380 --> 00:19:42,480 Creo que te daría como resultado lo mismo 418 00:19:42,480 --> 00:19:42,799 Pero 419 00:19:42,799 --> 00:19:46,220 Aquí luego lo pienso 420 00:19:46,220 --> 00:19:48,200 Si esto en vez de menor habéis puesto mayor 421 00:19:48,200 --> 00:19:50,940 No os funciona nada, pero es un fallo menor 422 00:19:50,940 --> 00:19:52,640 ¿Vale? No es el problema aquí 423 00:19:52,640 --> 00:19:53,779 El problema es 424 00:19:53,779 --> 00:19:56,900 Haber accedido aquí y haber accedido aquí 425 00:19:56,900 --> 00:19:57,880 Estas son las dos 426 00:19:57,880 --> 00:19:59,859 Cosas que estoy comparando 427 00:19:59,859 --> 00:20:01,579 Si luego me doy cuenta que esto 428 00:20:01,579 --> 00:20:03,019 Tenía que ser mayor en vez que menor 429 00:20:03,019 --> 00:20:05,160 Pues veo que no me funciona nada 430 00:20:05,160 --> 00:20:07,039 Lo hago un poco de debugging y lo encuentro 431 00:20:07,039 --> 00:20:08,140 Eso me interesa menos 432 00:20:08,140 --> 00:20:10,339 Eso lo digo de cara al examen 433 00:20:10,339 --> 00:20:13,319 Si os habéis equivocado aquí 434 00:20:13,319 --> 00:20:15,640 Importante haber utilizado estas otras cosas 435 00:20:15,640 --> 00:20:17,019 ¿Vale? 436 00:20:18,539 --> 00:20:19,940 Si esto es verdad 437 00:20:19,940 --> 00:20:21,539 Entonces quiere decir 438 00:20:21,539 --> 00:20:22,400 Que puedo 439 00:20:22,400 --> 00:20:28,940 Puedo hacer algo 440 00:20:28,940 --> 00:20:31,880 Justo, o sea que te puedo mostrar 441 00:20:31,880 --> 00:20:46,779 el contenido entonces eso tenía que prescribir puedes leer el siguiente texto lees texto dos 442 00:20:46,779 --> 00:21:06,180 puntos más 10 punto contenido puedes hacer nota contenido lo quiero privado pero lo dejamos así 443 00:21:06,180 --> 00:21:13,619 luego estas son cosas pequeñas la idea sería que de alguna forma solo desde aquí pueda acceder al 444 00:21:13,619 --> 00:21:35,970 contenido vale pero vamos a ver como seguimos esto por ahora lo dejamos así si no porque fijaos que 445 00:21:35,970 --> 00:21:42,950 si yo entro aquí dentro y luego tú no estás autorizado no te escribo ni esto ni esto 446 00:21:42,950 --> 00:21:44,630 Entonces aquí tengo que escribir algo más. 447 00:21:45,109 --> 00:21:45,849 ¿Qué tengo que escribir? 448 00:21:49,039 --> 00:21:49,619 Lo mismo. 449 00:21:52,700 --> 00:21:59,680 Entonces, sobre esta base, seguramente se puede hacer algo para mejorar un poco este código. 450 00:22:00,059 --> 00:22:02,759 Para que no tenga que escribir dos veces este mensaje. 451 00:22:06,420 --> 00:22:11,819 Una opción, independientemente, es poner un string aquí. 452 00:22:12,519 --> 00:22:13,500 Que sea el resultado. 453 00:22:14,480 --> 00:22:16,759 Rellenarlo con este texto si pasa por aquí. 454 00:22:16,880 --> 00:22:18,339 Con este texto si pasa por aquí. 455 00:22:18,339 --> 00:22:19,799 Con este texto se pasa por aquí 456 00:22:19,799 --> 00:22:21,640 Y luego al final siempre imprimir res 457 00:22:21,640 --> 00:22:23,880 Pero no cambia mucho 458 00:22:23,880 --> 00:22:25,519 De lo que tenemos que hacer ¿Vale? 459 00:22:25,720 --> 00:22:28,339 Lo que si podemos hacer para ahorrarnos uno de estos 460 00:22:28,339 --> 00:22:30,500 Es directamente esta condición de aquí 461 00:22:30,500 --> 00:22:36,180 Ponerla en el primer if 462 00:22:36,180 --> 00:22:41,369 Aquí 463 00:22:41,369 --> 00:22:42,549 Y 464 00:22:42,549 --> 00:22:47,000 Porque al fin y al cabo este if 465 00:22:47,000 --> 00:22:49,039 Tiene que comprobar tres cosas 466 00:22:49,039 --> 00:22:49,900 Que o sea null 467 00:22:49,900 --> 00:22:51,839 Que sea una instancia de operadora 468 00:22:51,839 --> 00:22:53,180 Autorizado 469 00:22:53,180 --> 00:22:55,119 Y si es verdad todas estas cosas 470 00:22:55,119 --> 00:22:56,819 Pues entonces que tenga el nivel de autorización 471 00:22:56,819 --> 00:22:58,859 Si estas tres cosas son verdaderas 472 00:22:58,859 --> 00:23:01,000 Entonces me escribes el contenido 473 00:23:01,000 --> 00:23:04,279 Si no 474 00:23:04,279 --> 00:23:06,559 Me escribes malvamos 475 00:23:06,559 --> 00:23:09,599 Y se acabó 476 00:23:09,599 --> 00:23:13,759 Esto debería funcionar 477 00:23:13,759 --> 00:23:17,539 Os recuerdo también que cuando utilizáis el end end 478 00:23:17,539 --> 00:23:24,920 Lo que estamos haciendo 479 00:23:24,920 --> 00:23:27,539 Lo que estamos haciendo es 480 00:23:27,539 --> 00:23:28,619 Valoramos esta 481 00:23:28,619 --> 00:23:29,720 Si esta es falsa 482 00:23:29,720 --> 00:23:33,740 Como esto será verdadero solo si los tres son verdaderos 483 00:23:33,740 --> 00:23:36,940 Como una sea falsa, las otras ni se miran 484 00:23:36,940 --> 00:23:37,720 ¿Vale? 485 00:23:37,900 --> 00:23:39,240 Entonces, como esto sea falso 486 00:23:39,240 --> 00:23:41,940 Ya está, salgo, se acabó 487 00:23:41,940 --> 00:23:44,900 Si este es falso 488 00:23:44,900 --> 00:23:46,980 No llegaré nunca a hacer esta operación 489 00:23:46,980 --> 00:23:48,339 ¿Sí? 490 00:23:48,400 --> 00:23:50,559 Entonces, llego a hacer esta operación 491 00:23:50,559 --> 00:23:52,240 Si, solo si 492 00:23:52,240 --> 00:23:54,660 Esto y esto han dado verdadero 493 00:23:54,660 --> 00:23:56,940 Entonces, tengo un objeto porque no es null 494 00:23:56,940 --> 00:23:59,440 Y tengo una instancia de operador autorizado 495 00:23:59,440 --> 00:24:00,079 Ahí 496 00:24:00,079 --> 00:24:01,680 ¿Dudas? 497 00:24:01,680 --> 00:24:11,680 Te daría, no tienes el C 498 00:24:11,680 --> 00:24:12,759 No, digo 499 00:24:12,759 --> 00:24:14,700 Si ocurriese en plan 500 00:24:14,700 --> 00:24:15,819 No flota, ¿no? 501 00:24:16,420 --> 00:24:20,190 Si pusieras aquí un null 502 00:24:20,190 --> 00:24:22,329 Esto te daría false, no debería explotar 503 00:24:22,329 --> 00:24:23,569 Imagínate que no está esa parte 504 00:24:23,569 --> 00:24:25,170 Que directamente pasas al instance of 505 00:24:25,170 --> 00:24:28,329 No me acuerdo si instance of 506 00:24:28,329 --> 00:24:30,829 Está con null o no 507 00:24:30,829 --> 00:24:32,049 Vale, era mi duda 508 00:24:32,049 --> 00:24:33,549 Es posible 509 00:24:33,549 --> 00:24:35,809 Que te diga false 510 00:24:35,809 --> 00:24:38,049 Cuando tú comparas un objeto 511 00:24:38,049 --> 00:24:40,289 O sea, un null con cualquier 512 00:24:40,289 --> 00:24:42,289 cualquier otra cosa, pues es posible que te diga falso. 513 00:24:42,289 --> 00:24:44,289 ¿Vale? Porque la instancia, 514 00:24:44,289 --> 00:24:46,289 técnicamente, no es una instancia de hasta aquí. Te debería 515 00:24:46,289 --> 00:24:48,289 explotar. Te debería decir, no, no lo es. 516 00:24:48,289 --> 00:24:50,289 Vale, era por saber por... 517 00:24:50,289 --> 00:24:52,289 Vale, pero es que no me acuerdo. Esto 518 00:24:52,289 --> 00:24:54,289 lo pruebas una vez 519 00:24:54,289 --> 00:24:56,289 y ves como... 520 00:24:56,289 --> 00:24:58,289 ¡Preguntas para vosotros! 521 00:24:58,289 --> 00:25:00,289 ¿Os gusta esto? 522 00:25:02,289 --> 00:25:04,289 ¿Por qué no? 523 00:25:04,289 --> 00:25:06,289 ¿No os gusta esto 524 00:25:06,289 --> 00:25:08,289 porque el profesor os ha preguntado, os gusta esto? 525 00:25:08,289 --> 00:25:25,099 Esto es un 8, asumiendo que luego a lo mejor no me he dado cuenta de algunos errores, pero por como lo veo ahora, sería un 8. 526 00:25:26,220 --> 00:25:28,140 ¿Dónde están los dos puntos que faltan? 527 00:25:28,619 --> 00:25:40,069 ¿Qué pasa si mañana yo me invento operador secreto? 528 00:25:41,349 --> 00:25:44,789 Que también tiene un nivel de autorización. 529 00:25:45,269 --> 00:25:59,859 ¿Qué pasa con este código? Que hay que rehacer el objeto, texto, audio, video, cocodrilo, todo lo que sean los que estén detenidos. 530 00:25:59,859 --> 00:26:06,339 No podría yo hacer algo aquí para que esto funcione un poco mejor. 531 00:26:06,339 --> 00:26:24,819 ¿Por cuál razón retorcida mi profesor me ha puesto la interfaz mostrable en vez de haber puesto esto directamente dentro de documentos y olvidarme de la interfaz mostrable? 532 00:26:26,380 --> 00:26:30,339 Perdón, no mostrable, de autorizado. 533 00:26:33,900 --> 00:26:39,319 O sea, no es operador autorizado que me permite sacar la autorización. 534 00:26:39,319 --> 00:26:46,759 Es el hecho que implemente autorizado que me hace poder pedir la autorización 535 00:26:46,759 --> 00:26:58,319 Entonces aquí esto está bastante mejor 536 00:26:58,319 --> 00:27:02,960 Porque ahora me da igual que sea un operador autorizado 537 00:27:05,119 --> 00:27:12,359 Cualquier elemento, cualquier clase que yo cree que implemente la posibilidad de autorizarse 538 00:27:12,359 --> 00:27:14,220 Me funciona 539 00:27:14,220 --> 00:27:18,700 Porque podrá llamar el método de autorización 540 00:27:18,700 --> 00:27:22,319 Y yo es el método de autorización que me da su nivel de confianza 541 00:27:22,319 --> 00:27:28,680 Y que yo lo miro con respecto al nivel de confidencialidad del documento 542 00:27:28,680 --> 00:27:30,059 Y veo si está bien o no 543 00:27:30,059 --> 00:27:33,299 Y si mañana y además de operador autorizado 544 00:27:33,299 --> 00:27:36,920 Tengo superjefe general, presidente del estado 545 00:27:36,920 --> 00:27:39,380 Que también tiene un nivel de confidencialidad 546 00:27:39,380 --> 00:27:41,859 Porque implementa y implementa autorizado 547 00:27:41,859 --> 00:27:44,819 porque es autorizado y tiene su nivel 1 548 00:27:44,819 --> 00:27:47,279 pues yo puedo utilizar tranquilamente aquí 549 00:27:47,279 --> 00:27:50,279 para leer un documento confidencial el presidente 550 00:27:50,279 --> 00:27:53,920 en vez del operador autorizado 551 00:27:53,920 --> 00:27:59,200 eso es un ye 552 00:27:59,200 --> 00:28:01,220 bueno, no lo sé, a lo mejor tiene errores 553 00:28:01,220 --> 00:28:05,700 esto es haber pensado 554 00:28:05,700 --> 00:28:08,920 en el diseño del programa 555 00:28:08,920 --> 00:28:12,859 y haber pensado por qué me han dado la interfaz autorizada 556 00:28:12,859 --> 00:28:15,660 Si lo hago sustancialmente a la interfaz autorizada 557 00:28:15,660 --> 00:28:16,579 Casi no la uso 558 00:28:16,579 --> 00:28:18,039 Porque 559 00:28:18,039 --> 00:28:20,279 Imaginaos que quito esta 560 00:28:20,279 --> 00:28:22,259 Y quito esta cosa aquí 561 00:28:22,259 --> 00:28:24,099 Implemento autorizado, cambia algo 562 00:28:24,099 --> 00:28:27,490 ¿No? 563 00:28:27,750 --> 00:28:30,630 Porque aquí me estoy inventando un método de autorización 564 00:28:30,630 --> 00:28:31,930 Que devuelve una autorización 565 00:28:31,930 --> 00:28:35,750 Esto funciona perfectamente 566 00:28:35,750 --> 00:28:37,970 ¿Y entonces por qué me han dado esta interfaz? 567 00:28:40,910 --> 00:28:41,829 Para esto 568 00:28:41,829 --> 00:28:49,640 Vale 569 00:28:49,640 --> 00:28:53,359 que hago ahora con 570 00:28:53,359 --> 00:28:55,720 texto, pues ctrl c 571 00:28:55,720 --> 00:28:57,680 ctrl v, lo llamo 572 00:28:57,680 --> 00:28:58,480 audio 573 00:28:58,480 --> 00:29:00,400 le doy ok 574 00:29:00,400 --> 00:29:03,839 en vez de numpad, ah no, lo abro 575 00:29:03,839 --> 00:29:05,660 bien, en vez de 576 00:29:05,660 --> 00:29:07,079 numpad era longitud 577 00:29:07,079 --> 00:29:07,980 longitud 578 00:29:07,980 --> 00:29:11,839 y esto lo copio aquí 579 00:29:11,839 --> 00:29:12,859 y 580 00:29:12,859 --> 00:29:15,000 l 581 00:29:15,000 --> 00:29:17,319 y esto l 582 00:29:17,319 --> 00:29:21,900 Esto es exactamente igual 583 00:29:21,900 --> 00:29:24,380 ¿Vale? Solo que en vez de 584 00:29:24,380 --> 00:29:25,900 Lees texto, dice 585 00:29:25,900 --> 00:29:27,019 Escucha audio 586 00:29:27,019 --> 00:29:35,190 Ahora, el hecho que esto cambie 587 00:29:35,190 --> 00:29:37,089 Es la razón de por qué lo estoy 588 00:29:37,089 --> 00:29:38,309 Haciendo en texto y en audio 589 00:29:38,309 --> 00:29:40,609 Si esto no cambiara 590 00:29:40,609 --> 00:29:43,009 Siendo exactamente el mismo 591 00:29:43,009 --> 00:29:45,069 Método para uno y para el otro 592 00:29:45,069 --> 00:29:46,789 A lo mejor lo habría podido llevar 593 00:29:46,789 --> 00:29:49,450 O implementado en la clase documento 594 00:29:49,450 --> 00:29:51,130 Y heredado directamente 595 00:29:51,130 --> 00:30:02,970 También aquí no estoy utilizando longitud y numpad, entonces no lo sé, es muy relativo 596 00:30:02,970 --> 00:30:10,470 Pero la idea era que se os pedía que funcionara distintamente, uno pone lee y uno pone escucha 597 00:30:10,470 --> 00:30:13,289 Justo para que vosotros implementáreis esto de aquí 598 00:30:13,289 --> 00:30:23,349 Es posible que esta parte de alguna forma la ponga en un documento 599 00:30:23,349 --> 00:30:28,609 O haya un método de documento que luego de aquí llamo el método de documento que es el mismo 600 00:30:28,609 --> 00:30:30,970 Por ejemplo la parte esta de aquí 601 00:30:30,970 --> 00:30:34,750 Que me devuelve un true o false de un método de documento 602 00:30:34,750 --> 00:30:36,670 Aquí llamo super este método 603 00:30:36,670 --> 00:30:39,430 O directamente aquí porque tanto lo he redado 604 00:30:39,430 --> 00:30:41,289 Y luego hacer, se puede hacer 605 00:30:41,289 --> 00:30:43,490 ¿Vale? Para evitar de repetir 606 00:30:43,490 --> 00:30:45,190 El mismo código de una forma o de otra 607 00:30:45,190 --> 00:30:47,589 Que si luego me doy cuenta que he hecho algo mal 608 00:30:47,589 --> 00:30:49,369 Aquí, en vez de tener que cambiarlo 609 00:30:49,369 --> 00:30:51,589 En todos lados, pues lo tenga centralizado 610 00:30:51,589 --> 00:30:52,849 En un punto, cambio ese 611 00:30:52,849 --> 00:30:55,289 Y luego simplemente cuando tengo la autorización 612 00:30:55,289 --> 00:30:56,990 Lo que hago es cambiar 613 00:30:56,990 --> 00:30:59,609 El texto de cada uno de ellos, se puede hacer 614 00:30:59,609 --> 00:31:01,670 ¿Vale? Pero esto ya 615 00:31:01,670 --> 00:31:04,369 No lo tendré en cuenta 616 00:31:04,369 --> 00:31:05,809 ¿Sí? 617 00:31:08,569 --> 00:31:09,049 ¿Dudas? 618 00:31:09,430 --> 00:31:25,349 Y con esto hemos acabado, digamos, la parte de, ¿cómo decirlo?, de entidades, de lo que voy a manejar, ¿vale?, en un cierto sentido. 619 00:31:25,769 --> 00:31:34,349 Ahora empiezan las partes donde combino estas cosas, ¿vale?, como el archivo de documentos, que hace operaciones sobre este de aquí, 620 00:31:34,349 --> 00:31:39,609 y luego el main, que lo que hace es llamar operaciones sobre el archivo de documentos, ¿vale? 621 00:31:39,609 --> 00:31:42,809 En un cierto sentido, archivo de documentos es lo que me abstrae 622 00:31:42,809 --> 00:31:44,750 Como está hecho el archivo por debajo 623 00:31:44,750 --> 00:31:47,130 El archivo de documentos 624 00:31:47,130 --> 00:31:48,869 Me proporciona una serie 625 00:31:48,869 --> 00:31:50,569 De operaciones 626 00:31:50,569 --> 00:31:51,869 Que puedo hacer sobre el archivo 627 00:31:51,869 --> 00:31:53,829 Y yo lo que haré es pedir esas 628 00:31:53,829 --> 00:31:56,609 Todo lo que son documentos, como se crean 629 00:31:56,609 --> 00:31:58,230 Como se borran, como se autorizan 630 00:31:58,230 --> 00:32:00,109 Pues está escondido 631 00:32:00,109 --> 00:32:02,410 Por debajo de esta capa de 632 00:32:02,410 --> 00:32:04,390 Archivo de documentos 633 00:32:04,390 --> 00:32:05,869 ¿Dudas?