Es momento de implementar nuestro patrón Blok para controlar nuestros formularios que creamos en el
pasado unas vidas pasadas.
Para eso les voy a pedir que vayamos a sours queremos un nuevo folder y se va a llamar Block o blocks
dependiendo porque pueden ser varios ustedes pueden manejarlos de diferentes maneras.
Les voy a crear un blog aquí adentro.
Click derecho archivo y este archivo se va a llamar blogging y un blog apuntó Tarth Enter.
Vamos a hacer nuestra lógica de este componente no es nada diferente a lo que ya hemos venido haciendo
solo que vamos a tener un paso adicional que es lo que recomienda flores pero ya vamos a llegar a eso.
Lo primero será crearme los streams que me van a permitir a mí controlar tanto el correo electrónico
y la contraseña y luego haremos un stream especial para controlar cuando ambos valores son correctos
o válidos para habilitar o desactivar el botón pero ya llegaremos a él.
Comencemos a crear nuestra clase del blog entonces Klaus lobbying Block así le vamos a poner ahora iniciarãn
ya es.
Aquí vamos a tener por los momentos dos controladores o dos Extrem controles uno para el e-mail y el
otro para el password entonces final y un bajo email controller.
Le voy a poner el bajo porque no quiero que eso sea expuesto fuera de la clase.
Quiero que solo sea controlado internamente y esto va a ser igual a un string controller.
Esto no lo encuentra.
Entonces tengo que importarlo de Dark sic que esa es mi primera importación voy a colocar aquí arriba.
Perfecto.
Recuerden que si yo lo dejo así sólo voy a poder estar escuchando una persona por decirlo así pero sólo
una instancia se va a poder escuchar y yo no quiero eso para eso entonces sería un broadcast.
También es bueno especificar qué tipo de información va a fluir a través de este stream que va a ser
un string suenan parecido pero no es el stream y el otro es un string ok.
Entonces cada vez que teclea algo va a pasar por éste Extrem controles creemos el password también aquí
voy a poner un bajo password controlen los así bien ordenados y es exactamente lo mismo va a fluir un
string y también voy a ponerle brocas para que varias instancias pueden estar escuchando sus cambios.
Recuerden que en teoría si yo dejara estas dos estas dos propiedades públicas y si quiero agregar información
al stream podría decirlo así y me controlen.
Pero déjenme agregar un locking un constructor aquí sólo para explicarles.
Podría decir perfectamente el control punto Zink punto AB para agregar nuevas cadenas de caracteres
a ese stream pero yo no lo quiero manejar de esa manera.
Ok entonces yo no quiero escribir todo ese código y recuerden que por eso yo estoy estableciendo los
guerreros y seres vamos a quedar con nuestro primer ket para insertar valores a ese string de una manera
fácil es insertar valores al string.
Empezamos con el del e-mail.
Entonces voy a hacerlo sin ket Change y me lo voy a poner.
Va a apuntar al email controller punto Cink apuntó a la misma función que ha venido haciendo.
Recuerden que no la estoy ejecutando.
Me estoy poniendo paréntesis para ejecutarla.
Estoy mandándolo como referencia y recuerden que el Get es público entonces cuando yo quiera cambiar
el valor del mail controle o agregar un nuevo valor a este stream lo tengo que hacer mediante el change
Time.
También voy a especificar que esto es una función que trabaja con un o sea sólo strings.
Voy a recibir el e-mail es el nombre del password es exactamente lo mismo que le voy a poner password.
Este va a apuntar al bajo password controles perfecto ahora ocupo una forma para poder estar escuchando
el stream es decir para que yo pueda usar un string controlaron string Builder acá y que cada vez que
eso cambie hacer algo respecto a ese cambio o sea por ejemplo mostrar algún valor de error mostrar que
quitar el error entre otras cosas entonces vamos a colocarlo acá escuchar o recuperar los datos del
extremo de la salida del mismo.
Entonces voy a quitar peste y empiezo vamos a llamar a este método de email stream también va a ser
público por eso lo voy a poder accesar fuera de esta clase.
Esto va a apuntar al email controller punto stream punto y coma recuerden que el stream yo puedo estar
escuchándolo puedo escuchar cuando algo salga de ahí.
Mediante este extremo voy a hacer lo mismo con el password si es password stream arreglamos esto un
poquito para que se mire bien y también es correcto o es conveniente especificar qué tipo de stream
o qué fluye a través de este río.
Voy a ponerla aquí un string que va a fluir un string que lo que sale lo que sale de este stream van
a ser strings ok.
Yo sé que tal vez sonará igual pero ustedes me entienden.
Este río lo que contiene son strengths perfect.
Yo tengo los dos métodos acá y ustedes notan aquí se está quejando y esto es porque si yo estoy un string
controller.
Necesito crearme el método para cerrarlos cuando ya no los necesito dispongas.
Se va a llamar aquí dispone parentesis abre y cierra llaves y lo que voy a hacer acá es que el el controller
punto Kloss lo mismo con el password entonces password controller punto Clowes y siempre es bueno poner
aquí este signo de interrogación para evitar que si esto fuera nulo entonces no ejecute el punto clave
que nos daría un error aunque en este caso creo que siempre van a estar siempre va a existir pero siempre
es una buena práctica de seguridad tener esa validación ahí perfecto yo ya tengo mi Block implementado
de esta manera.
Antes de terminar la clase no se les olvide que aquí no es el Controller es password control cometió
un error porque si no estaríamos escuchando con este paso controles el mismo.
Y yo no quiero eso.
Bueno esto es básicamente todo.
Recuerden que estos métodos que solo son una conveniencia para no tener que apuntar siempre al control
total con total ok.
Y de esta manera quedar bien controlado lo que yo puedo hacer con estos tres controles lo vamos a dejar
así por los momentos en el siguiente video vamos a implementar algo un poquito difícil de comprender
pero voy a hacer mi mejor esfuerzo para tratar de explicarse lo que es la manera que Florez recomienda
para mandar información o mantener la información global en toda mi aplicación.
OK pero eso ya lo vamos a ver en el siguiente video.