Vamos a trabajar ahora con lo que se conoce como constructores con nombre.
Para eso necesito crearme nuevamente el ejercicio anterior algo rápidamente.
Vamos a crear la clase R con el nombre punto y coma y el string poner punto y coma definamos el constructor
tradicional entonces héroe.
Recuerden que tiene que tener el mismo nombre.
Así se define el constructor y voy a hacer la versión corta disputo nombre nombre y disputo poder perfecto.
Yo tengo el constructor tradicional y lo puedo utilizar pues aquí mi función Main main parentesis encierran
llaves.
Queremos una nueva instancia de héroe final vamos a acostumbrarnos y está trabajando con el final para
que ustedes lo miren natural y normal recuerden que lo que hace sino miren los videos anteriores o que
al final vuelven igual a nuevo héroe y me está pidiendo los argumentos posicionales es decir el primero
tiene que ser el nombre y el segundo tiene que ser el poder.
Entonces el primero va a ser Logan Joma y el segundo es la regeneración.
Ese es el poder perfectamente voy a ser una impresión acá abajo print de Wolverine apuntó PPoder y hagamos
otra que sea el nombre nada del otro mundo lo mismo que hicimos en la clase anterior.
Supongamos que yo no tengo esta inicialización eso yo voy a ocupar este constructor porque así voy a
poder crear instancias.
Pero supongamos que nosotros hacemos una llamada HTTP alguna API y nos trae la información en un formato
Jayson vamos a crearnos un Jayson rápido un Jayson estre siempre Fanal.
Pero recuerde que le pude haber puesto el streaming como ustedes quieran.
Voy a dejarlo como final para que nos estamos acostumbrando a ver ese final que no se les quita el miedo
y voy a decir voy a ponerlo como un burro Jayson o un Jayson en bruto como ustedes quieran ponerle entre
comillas sencillas y pongan mucha atención como yo lo voy a escribir porque tiene que ser un caso valido.
Empezamos con las llaves aquí adentro voy a tener el nombre dos puntos fuera de las dos Comillas y viene
el nombre.
También en Comillas va a ser Logan luego Joma y aquí nuevamente habrá en Comillas viene el poder dos
puntos y vuelven a abrir Comillas la regeneración regeneración.
Ok miren bien como está escrito porque si esto no fuera un Jayson válido vamos a tener un pequeño problema
después.
Ok pero no como está suponiendo que ésta es mi respuesta de una API.
Cómo podría crear una instancia de Wolverine.
Voy a comentar estas dos líneas porque no lo necesito por los momentos.
Ok tengo mi Roche Watson que es una respuesta de un API común y corriente.
Cómo lo podría transformar en algo que trabaje o que funcione en Dart.
Porque si yo quiero extraer el nombre no puedo cortar el extrañezas sería muy poco eficiente para eso
voy a crearme una nueva variable llamada Bast Jayson o un Jayson extraído o parcial o como ustedes quieran
decirle la verdad el nombre no importa mucho.
Ok.
Jayson y voy a ocupar un método que se encuentra el objeto Jayson.
Esto viene propio andar.
De hecho no existe por los momentos porque ustedes pueden ver si yo pongo punto no me aparece nada pero
este Jayson lo vamos a importar de un paquete que viene en Tarth y esto también lo vamos a poder hacer
en Flore perfectamente.
Ok import del paquete Dart vamos a buscar el Converter o Umbert punto y coma.
De esta manera aquí ya viene unas instrucciones para transformar información y ya van a ver voy a volver
a poner Jayson punto.
Y aquí tenemos otros métodos y funciones que están dentro de este objeto.
Jayson y una de esas la que me interesa a mí es el de Decoud como ustedes pueden observar.
Recibe un string que es el sours y regresa algo de tipo dinámico se regresa a cualquier cosa pero tradicionalmente
lo que regresa es un mapa de tipo dinámico dinámico que voy a pedir dico le voy a mandar el Jayson vamos
a imprimir ese Jayson para ver qué es lo que tiene ahí adentro.
Past Jayson punto y coma y ejecutemos.
Vamos a ver qué es lo que aparece acá tenemos nombre Logan poder regeneracion pero esto ya es un mapa.
Ok entonces tenemos nuestro mapa que es un mapa dinámico pero yo sé que es un mapa como podemos observar
acá.
Ok qué les parece si creamos un constructor que sea capaz de recibir este mapa y crear una nueva instancia
del Erbe pero a su vez yo no quiero perder esta funcionalidad de crear héroes con el constructor tradicional
cómo lo hacemos.
Bueno vamos a utilizar lo que se conocen los como los constructores con nombre poner aquí héroe que
esos tradicional de ustedes ya saben que es para crear el constructor pero en lugar de esos paréntesis
voy a poner un punto y le voy a asignar el nombre que quiero que tenga o esta función para poder crear
instancias de héroes y ese nombre va a ser from Jayson y aquí siguen los paréntesis y punto y coma que
es lo que voy a recibir aquí.
Yo voy a recibir un Jayson o un string o un mapa o lo que ustedes quieran.
La verdad es que aquí depende mucho de la lógica que ustedes quieran implementar y pueden crear tantos
constructores con nombre como ustedes necesiten abren y cierran llaves y voy a desarrollar un poco la
lógica aquí claro.
Aquí podríamos especificar que venga streaming streaming o poner un tipo pero por los momentos sería
de tipo dinámico porque eso es lo que estoy regresando a lo que me está regresando aquí el Jayson está
regresando Dinamics pero yo sé que es un mapa.
Esto es algo que nosotros vamos a usar bastante cuando estemos trabajando con la parte del HTTP y vamos
a crear nuestros tipos y a asignar tipos para evitar ciertos errores de escritura y ya lo van a ver.
Ok entonces cuando se llama a este constructor con nombre voy a decir que el nombre que tengo en mi
propiedad va a ser igual a past Jayson Jayson y entre llaves cuadradas porque recuerden que esto es
un mapa voy a colocar aquí el nombre pero lo escribo en nombre punto y coma.
Hagamos lo mismo con el poder.
Recuerden que esto y esto no tienen que llamarse igual mi propiedad puede llamarse super nombre o superpoder
como ustedes quieran pero aquí estoy haciendo la traducción que extraiga de ese parche y son que busque
el nombre y lo asigne a mi propiedad nombre.
Lo mismo con el poder.
Ok eso es básicamente todo esto es un constructor con nombre.
Ahora vamos a utilizarlo.
Voy a poner aquí un comentar esa línea y voy a crearme esta nueva variable pero en vez de utilizar el
héroe voy a utilizar mi constructor con nombre final Wolverine va a ser igual a nuevo héroe pero en
vez de poner paréntesis voy a poner un punto y aquí tenemos el from Jayson ok.
Abren y cierran paréntesis.
Y aquí vamos a mandar mi post Jayson perfectamente ustedes pueden mandar el Roché y son aka y procesar
y hacer el combate ahí adentro como ustedes quieran.
Por el momento no voy a dejar así y vamos a imprimir el nombre y el poder.
Pero recuerden que esta línea está comentada y vamos a ver si esto funciona excelente aquí está tenemos
Logan y la regeneración.
Bueno esto es algo que nosotros vamos a utilizar bastante y este concepto necesito que ustedes lo dominen
porque es muy común verlo y antes de terminar esta clase lo único que me estorba un poco es que yo no
sé de qué tipo es ese.
Jayson y también yo estoy aceptando acá en mi consultorio nombre cualquier cosa y eso tampoco me gusta
mucho.
Entonces voy a definir acá que estoy esperando un mapa podría especificar el tipo pero no voy a tener
un error porque este Convent es bastante genérico y Ajá yo sé que estetico por lo menos voy a recibir
un mapa o sea mi Parfait Jayson es un mapa de tipos de dinamita dinámica y aquí solo estoy recibiendo
dinamitan la dinámica esto debería seguir funcionando vamos con no perfecto lo dejamos así y continuemos
con la siguiente clase.