1
00:00:00,240 --> 00:00:05,160
Bien, el método listar con el short está funcionando bien, pero hay dos problemas que podemos mejorar

2
00:00:05,250 --> 00:00:05,940
optimizar.

3
00:00:06,000 --> 00:00:07,740
Bueno, lo primero es que estamos duplicando código.

4
00:00:07,780 --> 00:00:11,200
Se fijan, este código del switch es muy parecido a este de acá.

5
00:00:11,490 --> 00:00:13,080
Solo que se han vuelta el aire.

6
00:00:13,380 --> 00:00:16,620
Bueno, eso lo puedo mejorar con un método y reutilizar ese método.

7
00:00:16,740 --> 00:00:23,250
Lo segundo que kaikki ordenamos con el short está afectando de forma directa al datasource, es decir,

8
00:00:23,250 --> 00:00:25,230
está modificando la lista original.

9
00:00:25,260 --> 00:00:27,450
Por lo tanto, también afecta al distar.

10
00:00:27,570 --> 00:00:32,310
Es decir, que ordenamos se ve afectado el listar y los datos originales.

11
00:00:32,400 --> 00:00:38,220
Y no, la idea es que sea inmutable el DataSource, es decir, a partir del DataSource crear una nueva

12
00:00:38,220 --> 00:00:43,800
lista, ordenar esa nueva lista y retornar esa lista modificada pero no el original.

13
00:00:44,050 --> 00:00:46,650
Bien, partamos primero por eso, pero es super simple.

14
00:00:46,740 --> 00:00:52,020
Lo primero vamos a crear una nueva lista, un list de cliente.

15
00:00:53,670 --> 00:00:56,250
Le vamos a llamar lista ordenada.

16
00:00:58,770 --> 00:01:02,100
Perfecto New railes se fijan.

17
00:01:02,190 --> 00:01:04,680
Vamos a crear una nueva lista de cero.

18
00:01:04,810 --> 00:01:10,650
Entonces, a partir del DataSource por constructor de la red list podemos colocar otro listo.

19
00:01:11,390 --> 00:01:13,320
Disputo DataSource.

20
00:01:13,860 --> 00:01:14,250
Perfecto.

21
00:01:14,250 --> 00:01:18,630
Entonces, a partir de este de estos datos originales, creamos esta lista.

22
00:01:18,720 --> 00:01:19,920
Ordenamos esta lista.

23
00:01:20,700 --> 00:01:24,690
Entonces, en vez de DataSource lista ordenada sort.

24
00:01:25,630 --> 00:01:27,990
Y al final retornamos lista ordenada.

25
00:01:28,090 --> 00:01:28,840
Muy importante.

26
00:01:30,060 --> 00:01:32,340
Así no afecta, no influye en nada.

27
00:01:32,430 --> 00:01:35,550
Ahora comparemos y probemos con este cambio.

28
00:01:35,670 --> 00:01:37,650
Vamos a ejecutar ejemplo repositorio.

29
00:01:38,160 --> 00:01:41,240
Ahora fíjense que por acá está ordenando.

30
00:01:41,250 --> 00:01:44,070
Se fijan de forma ascendente y por el apellido.

31
00:01:44,190 --> 00:01:48,660
Acá mismo ordena y después volvemos a ejecutar el distar.

32
00:01:49,020 --> 00:01:50,880
Voy a comentar acá el eliminar.

33
00:01:50,970 --> 00:01:52,410
Lo voy a comentar solamente por ahora.

34
00:01:53,040 --> 00:01:58,410
Si se fijan este de acá, este listar con el orden ya no afecta a este de acá.

35
00:01:59,250 --> 00:01:59,730
Veamos.

36
00:02:04,710 --> 00:02:11,160
En el eliminar el extremo ve a Lucy Andrés, se fijan el orden original con el cual lo registramos,

37
00:02:11,160 --> 00:02:16,770
János ve a Lucia en 3, así que está perfecto, mientras que el de acá el editar por acá tenemos el

38
00:02:16,770 --> 00:02:25,980
editar, acá tenemos con el orden ascendente y el apellido se fijan m g m acá esta de acá no cuenta

39
00:02:26,070 --> 00:02:28,420
ya porque este es el detalle el por ahí.

40
00:02:28,710 --> 00:02:37,380
Entonces sería g m mp te fijan ordena de forma ascendente por el apellido, así que está perfecto y

41
00:02:37,380 --> 00:02:39,220
no afecta a los datos originales.

42
00:02:39,840 --> 00:02:40,650
Ahora como estaban?

43
00:02:40,650 --> 00:02:43,560
T si se acuerdan esto lo de comentar.

44
00:02:44,800 --> 00:02:46,630
Acá vamos a colocar DataSource.

45
00:02:48,620 --> 00:02:51,260
Lleca DataSource si afectaba.

46
00:02:53,720 --> 00:02:54,650
Si ejecutamos.

47
00:02:55,710 --> 00:02:56,760
Estas bolitas son iguales.

48
00:02:56,860 --> 00:03:06,000
André, Lucy, Bhajana, Andrés, Lucy, Bea hija no tiene por qué MMP, entonces está afectando la

49
00:03:06,000 --> 00:03:15,000
idea de que no es importante que sea inmutable retornar una anual lista ordenada y no modificar la original.

50
00:03:16,790 --> 00:03:17,660
Lo dejamos de esa forma.

51
00:03:17,810 --> 00:03:18,710
Eso sería lo correcto.

52
00:03:18,950 --> 00:03:24,440
Bien, lo segundo es reutilizar esto el switch, claro, porque estamos duplicando código.

53
00:03:24,530 --> 00:03:28,460
El Heidy nombre, apellido se fijan, es muy parecido, solamente damos vuelta los valores.

54
00:03:28,640 --> 00:03:30,440
Entonces se puede llevar a un método?

55
00:03:30,620 --> 00:03:35,630
Bueno, hay varias formas de implementar esto, como lo tenemos implementado con una person lanta.

56
00:03:35,750 --> 00:03:42,080
Acá, acá solamente nos permite ejecutar alguna acción con estos datos que sería ordenar.

57
00:03:42,920 --> 00:03:46,820
Por lo tanto, en esta implementación no podemos tener un método.

58
00:03:47,480 --> 00:03:48,890
A diferencia de una clase anónima.

59
00:03:49,340 --> 00:03:55,310
Si tuviéramos una clase anónima lo podríamos implementar dentro de la implementación de esta clase,

60
00:03:55,400 --> 00:03:57,080
que en paraditos a él lo podríamos hacer.

61
00:03:57,230 --> 00:03:59,780
De hecho lo podríamos ver para que vean la diferencia también.

62
00:03:59,900 --> 00:04:02,450
Bien está claro que con episo Holanda no se puede.

63
00:04:02,570 --> 00:04:04,580
Pero lo vamos a hacer.

64
00:04:04,670 --> 00:04:06,320
De hecho, voy a cortar esto.

65
00:04:08,380 --> 00:04:10,840
Es todo acá, solamente lo de cortar, nada más.

66
00:04:11,050 --> 00:04:13,210
La implementación de las llaves.

67
00:04:13,390 --> 00:04:14,380
Nada más que lo voy a cortar.

68
00:04:14,620 --> 00:04:18,040
Esto de acá de la llave, desde que se abre hasta que se cierra.

69
00:04:18,160 --> 00:04:18,970
Lo cortamos.

70
00:04:22,490 --> 00:04:23,230
Perfecto.

71
00:04:25,290 --> 00:04:25,790
New.

72
00:04:27,260 --> 00:04:27,990
Con parato.

73
00:04:28,610 --> 00:04:29,090
Listo.

74
00:04:29,520 --> 00:04:33,230
Ahora voy a pegar acá, pero en el método comprar.

75
00:04:33,500 --> 00:04:34,730
Recuerde que corté.

76
00:04:34,850 --> 00:04:35,540
Ahora lo pego.

77
00:04:36,290 --> 00:04:36,710
Listo.

78
00:04:36,800 --> 00:04:37,940
Ahí tenemos la implementación.

79
00:04:39,290 --> 00:04:41,240
Pedro Karanka a y Acadé.

80
00:04:42,520 --> 00:04:44,620
Ves cómo es una clase anónima?

81
00:04:44,830 --> 00:04:51,880
Acá tenemos el new que en pared tor, en fin, acá tenemos el método compar es una implementación.

82
00:04:53,150 --> 00:04:57,650
Se fijan, acá podríamos tener otro método para esto, para reutilizar.

83
00:04:58,100 --> 00:04:59,540
Entonces voy a copiar el switch.

84
00:05:00,540 --> 00:05:01,400
Lo voy a copiar.

85
00:05:02,730 --> 00:05:06,510
Acá vamos a crear un método acá, justo cuando termina el cierre la llave.

86
00:05:06,930 --> 00:05:13,590
Recuerden que se el método compar, se abre, se cierra, donde se cierra un método que va a retornar

87
00:05:13,650 --> 00:05:17,560
un entero con el resultado, con el orden Privat.

88
00:05:17,880 --> 00:05:22,650
Pues es privado porque es un método solamente de esta implementación que vamos a ocupar dentro de esta

89
00:05:22,650 --> 00:05:23,440
clase anónima.

90
00:05:23,950 --> 00:05:26,010
INT Bueno, qué nombre le podemos colocar?

91
00:05:26,110 --> 00:05:36,300
Da lo mismo comparar ordenando como queramos ordenar, da lo mismo ordenar cliente A, cliente B.

92
00:05:38,950 --> 00:05:39,490
Perfecto.

93
00:05:39,610 --> 00:05:42,640
Acá tenemos campo, el campo lo tenemos acá.

94
00:05:42,730 --> 00:05:45,310
Recuerden que se pasa por argumento acá.

95
00:05:45,730 --> 00:05:50,920
Entonces lo tenemos disponible ya, pero faltaría el resultado porque tenemos que retornar el resultado.

96
00:05:52,390 --> 00:05:57,490
Int Resultado igual 0 Yaca.

97
00:05:57,610 --> 00:05:58,960
Retornamos acá.

98
00:06:01,560 --> 00:06:02,620
Se fija listo.

99
00:06:02,700 --> 00:06:03,600
Ahí tenemos el método.

100
00:06:04,290 --> 00:06:05,820
Entonces ahora lo utilizamos acá.

101
00:06:06,450 --> 00:06:11,610
Entonces, en vez de esto, bueno, simplemente quitamos esto y también quitamos esto y lo reemplazamos

102
00:06:11,610 --> 00:06:12,270
por el método.

103
00:06:13,170 --> 00:06:17,730
Por ejemplo, 10 10 punto ordenase.

104
00:06:18,740 --> 00:06:19,180
OIV?

105
00:06:20,600 --> 00:06:21,500
Ah, comadre!

106
00:06:23,050 --> 00:06:23,650
Perfecto.

107
00:06:24,010 --> 00:06:27,130
Y acá también disputo ordenar.

108
00:06:28,120 --> 00:06:35,440
Pero acá sería Beco más B es A y A es B se fijan, damos vuelta.

109
00:06:35,620 --> 00:06:38,380
Entonces acá Abbe vea y listo.

110
00:06:38,710 --> 00:06:43,660
Ahí lo tenemos implementado, reutilizando siempre la misma implementación, el mismo código.

111
00:06:43,720 --> 00:06:44,690
Pero falta un detalle.

112
00:06:44,920 --> 00:06:49,390
Falta asignar acá el resultado a lo que retorna el ordenar.

113
00:06:49,510 --> 00:07:00,250
Entonces cacería resultado igual ahorase resultado igual es importante, claro, porque ordenamos,

114
00:07:00,310 --> 00:07:04,180
obtenemos el entero y se lo asignamos acá al resultado se fijan.

115
00:07:04,500 --> 00:07:06,490
Listo, lo tenemos una forma.

116
00:07:07,150 --> 00:07:10,900
Entonces bueno, obviamente vamos a vamos a probar.

117
00:07:11,440 --> 00:07:12,640
Ejemplo repositorio.

118
00:07:13,030 --> 00:07:15,280
Acá tenemos ascendente, lo vamos a probar.

119
00:07:15,280 --> 00:07:17,830
Acá tenemos comentado el eliminar.

120
00:07:19,610 --> 00:07:20,360
Ejecutados.

121
00:07:22,200 --> 00:07:23,410
Entonces acá por?

122
00:07:23,520 --> 00:07:32,430
Recuerden que está ordenando el editar acá en el editar acá, ordenar el repositorio AFK tonce acá sería

123
00:07:32,580 --> 00:07:33,020
G.

124
00:07:33,120 --> 00:07:33,760
Mm.

125
00:07:33,830 --> 00:07:34,110
P.

126
00:07:34,650 --> 00:07:35,580
Recuerden que esta acá.

127
00:07:35,670 --> 00:07:36,300
No cuenta.

128
00:07:37,200 --> 00:07:38,870
De hecho podrías colocar un separador acá.

129
00:07:40,560 --> 00:07:41,160
Shout.

130
00:07:47,220 --> 00:07:47,640
Ahora si.

131
00:07:48,790 --> 00:07:50,280
Entonces ora descendente.

132
00:07:52,770 --> 00:07:54,930
Va tras Revell la P al principio.

133
00:07:54,960 --> 00:07:57,450
Pérez Mena Martínez y al final Guzmán.

134
00:08:01,210 --> 00:08:03,490
Juan Pérez Mena Martínez y al final Guzmán.

135
00:08:03,580 --> 00:08:04,390
Así que está perfecto.

136
00:08:04,510 --> 00:08:10,060
Ahora vamos a ordenar por nombre DESC descendente.

137
00:08:14,560 --> 00:08:19,370
Al final han tres, pero primero Luce, Jano, Vea, Andrés a V.

138
00:08:19,510 --> 00:08:20,110
J.

139
00:08:20,230 --> 00:08:21,550
L se fijan?

140
00:08:27,450 --> 00:08:28,500
André viajás, no lo sé.

141
00:08:28,590 --> 00:08:29,460
Así que está perfecto.

142
00:08:29,580 --> 00:08:30,180
Funciona bien.

143
00:08:32,160 --> 00:08:38,190
Es decir, en una forma el único pero que tiene es que estamos perdiendo la característica de expresión

144
00:08:38,190 --> 00:08:40,200
blanda de una programación más funcional.

145
00:08:40,300 --> 00:08:46,410
Claro, porque estamos obligados a implementar el new para either como una clase anónima para poder

146
00:08:46,410 --> 00:08:48,810
implementar este método y poder reutilizarlo.

147
00:08:49,380 --> 00:08:50,460
Pero bien, hay otra forma.

148
00:08:50,850 --> 00:08:51,810
Entonces, qué vamos a hacer?

149
00:08:51,900 --> 00:08:52,920
Vamos a cortar esto?

150
00:08:54,020 --> 00:08:54,830
Lo cortamos.

151
00:08:55,160 --> 00:08:56,840
Este método privado Privat.

152
00:09:00,270 --> 00:09:01,890
ÂQuÃ marca error, pero no se preocupen.

153
00:09:01,980 --> 00:09:02,550
Está bien.

154
00:09:04,230 --> 00:09:06,400
De hecho, lo voy a comentar acá.

155
00:09:08,760 --> 00:09:16,560
Bien, acá me marca en el new Compare Itor, que se puede crear como presun lanta, tal como lo teníamos

156
00:09:16,560 --> 00:09:16,870
antes.

157
00:09:17,100 --> 00:09:18,960
Aunque lo podríamos hacer de forma manual.

158
00:09:19,080 --> 00:09:20,250
Así que esa es la forma automática.

159
00:09:20,310 --> 00:09:23,370
Acá colocamos reemplazar y que era constante.

160
00:09:23,580 --> 00:09:26,130
Se fija o lo hacemos de forma manual.

161
00:09:27,470 --> 00:09:31,130
Voy a comentar acá, le comentamos puede quitar esto?

162
00:09:31,640 --> 00:09:34,760
Acá lo dejamos acá y acá Flecha.

163
00:09:35,780 --> 00:09:36,370
Y recuerden que.

164
00:09:37,190 --> 00:09:37,730
Una llave.

165
00:09:37,780 --> 00:09:40,100
Entonces este cierre le quitamos.

166
00:09:43,310 --> 00:09:46,280
Podemos quitar también el tipo, ya que es por defecto.

167
00:09:47,940 --> 00:09:49,110
Y faltaría el ordenar.

168
00:09:49,350 --> 00:09:52,680
Pero bien, este método ordenar lo podemos dejar como método de la clase.

169
00:09:52,900 --> 00:09:53,190
Acá.

170
00:09:55,130 --> 00:10:01,910
Simplemente lo pega más acá se fijan acá, no en el carro, pero como es un método de la clase que fuera

171
00:10:01,910 --> 00:10:07,850
del contexto del método listar, porque recuerda el método litat tiene el campo, pero acá no tenemos

172
00:10:07,850 --> 00:10:08,420
el campo.

173
00:10:08,540 --> 00:10:10,010
Entonces lo pasamos por argumento.

174
00:10:10,630 --> 00:10:14,930
Entonces una forma sería pasar por argumento en el ordenar el campo.

175
00:10:15,290 --> 00:10:18,620
Entonces en ordenar en 10, ordenar campo.

176
00:10:21,520 --> 00:10:22,210
Campo.

177
00:10:23,330 --> 00:10:27,470
Y acá, en ordenar estrechen campo.

178
00:10:29,390 --> 00:10:35,480
A ese día lo tenemos como un método propio de la clase cliente, el repositorio y lo podríamos dejar

179
00:10:35,480 --> 00:10:36,050
de esa forma.

180
00:10:36,860 --> 00:10:39,290
Si probamos va a resultar exactamente igual.

181
00:10:42,070 --> 00:10:44,410
Se fijan acá está a B.

182
00:10:44,590 --> 00:10:45,100
J?

183
00:10:45,190 --> 00:10:46,570
L por nombre.

184
00:10:48,090 --> 00:10:54,300
Pero dentro del método estamos trabajando con variables que se pasan por argumento Campo A y B, no

185
00:10:54,300 --> 00:10:56,340
hay ninguna variable propia de la clase.

186
00:10:56,460 --> 00:10:57,950
No hay un atributo de la clase.

187
00:10:58,290 --> 00:10:59,940
Por lo tanto, podría ser estático.

188
00:11:00,390 --> 00:11:04,890
Por ejemplo, un public static ordenar.

189
00:11:06,050 --> 00:11:10,370
Y acá, en vez de Liz, sería simplemente ordenar un método estático.

190
00:11:10,880 --> 00:11:16,250
También otra forma, de hecho sería mejor, porque son puros argumentos y nada más.

191
00:11:16,340 --> 00:11:21,020
No hay ningún tiz, no hay ningún atributo método que estemos utilizando acá que sea de la clase.

192
00:11:21,170 --> 00:11:22,520
Entonces podría ser estático.

193
00:11:22,610 --> 00:11:23,330
También puede ser.

194
00:11:23,540 --> 00:11:25,070
Se fijan diferente alternativa.

195
00:11:25,190 --> 00:11:27,830
Incluso podría cortar esto.

196
00:11:28,010 --> 00:11:29,330
Este método se fijan.

197
00:11:29,420 --> 00:11:30,350
Acá hay mucha forma.

198
00:11:31,280 --> 00:11:35,330
Lo quitamos de la implementación de la clase y lo podemos llevar a la interfaz.

199
00:11:35,390 --> 00:11:35,940
Ordenarles.

200
00:11:36,320 --> 00:11:41,510
Acá en el dictarle recuerden que podemos tener acá métodos estáticos.

201
00:11:43,400 --> 00:11:46,910
Se fijan static it órdenes o incluso diffcil.

202
00:11:46,940 --> 00:11:47,690
También puede ser.

203
00:11:48,850 --> 00:11:49,750
Pero si es estático.

204
00:11:49,840 --> 00:11:54,610
Acá tengo que indicar el nombre de la interfaz para llamarla por su nombre.

205
00:11:54,700 --> 00:11:55,600
Punto el método.

206
00:11:56,290 --> 00:12:00,700
Entonces ordénale punto ordenar.

207
00:12:02,640 --> 00:12:03,210
Se fijan?

208
00:12:07,710 --> 00:12:11,430
Una implementación por defecto que tengo acá de forma estática en la interfaz.

209
00:12:12,360 --> 00:12:12,870
También.

210
00:12:18,540 --> 00:12:25,260
O bien puede ser difficult un método de la interfaz de default, que también se puede sobrescribir,

211
00:12:25,650 --> 00:12:26,520
no es estático.

212
00:12:27,270 --> 00:12:35,670
Por lo tanto, en la clase acá sería así nomás ordenar invoca el método ordenar que de la interfaz.

213
00:12:35,760 --> 00:12:39,990
De hecho, acá dice la interfaz ordenarles repositorio Melody fold.

214
00:12:40,230 --> 00:12:45,180
Incluso acá lo podríamos sobrescribir y darle una implementación propia en la clase que implementa la

215
00:12:45,180 --> 00:12:45,660
interfaz.

216
00:12:46,260 --> 00:12:50,060
Se fijan diferente forma bien como son tantas forma la cual podemos utilizar.

217
00:12:50,070 --> 00:12:51,690
Cuál sería la más adecuada?

218
00:12:51,870 --> 00:12:54,780
Va a depender del criterio nuestro como lo queramos manejar.

219
00:12:54,920 --> 00:12:57,870
Yo creo que la dos mejores formas sería bueno.

220
00:12:57,960 --> 00:13:02,940
Uno podría ser esta en difficult dar una implementación por defecto para ordenar.

221
00:13:03,030 --> 00:13:08,130
Podría quedar así o bien en la clase cliente el repositorio.

222
00:13:08,400 --> 00:13:09,060
Acá también.

223
00:13:10,440 --> 00:13:16,110
Tanto la interfaz como en la clase propia, pero también cómo es una implementación propia del distar

224
00:13:16,200 --> 00:13:16,950
de esta clase.

225
00:13:17,160 --> 00:13:23,850
Lo estamos utilizando solamente acá, quizá podría quedar mejor en la propia clase, en cliente, el

226
00:13:24,210 --> 00:13:24,930
repositorio.

227
00:13:26,540 --> 00:13:27,590
Entonces lo cortamos.

228
00:13:29,120 --> 00:13:30,200
Y lo llevamos acá.

229
00:13:32,720 --> 00:13:40,690
Obviamente el no va y lo dejamos como estático, ya que es mucho más reutilizable y mucho más optimizado

230
00:13:40,700 --> 00:13:41,960
nuestro código, nada más.

231
00:13:41,990 --> 00:13:43,870
Continuamos en la siguiente clase.
