domingo, 8 de diciembre de 2019

Wrappers

Wrappers

Generalmente se usa para describir una clase que contiene una instancia de otra clase, pero que no expone directamente esa instancia. El objetivo principal de la envoltura es proporcionar una forma "diferente" de usar el objeto envuelto (quizás la envoltura proporcione una interfaz más simple o agregue alguna funcionalidad).


Función Wrappers


Una función contenedora es una subrutina en una biblioteca de software o un programa de computadora cuyo propósito principal es llamar a una segunda subrutina  o una llamada al sistema con poco o ningún cálculo adicional. Las funciones de envoltura se utilizan para facilitar la escritura de programas de computadora al abstraer los detalles de la implementación subyacente de una subrutina.

Prueba de código a través de wrapper


Las funciones de envoltura se pueden usar para escribir rutinas de verificación de errores para funciones del sistema preexistentes sin aumentar en gran medida la longitud de un código repitiendo la misma verificación de errores para cada llamada a la función.  Todas las llamadas a la función original se pueden reemplazar con llamadas al contenedor, lo que permite al programador olvidarse de la comprobación de errores una vez que se escribe el contenedor. Un controlador de prueba es un tipo de función de envoltura que ejercita un módulo de código, que generalmente lo llama repetidamente, con diferentes configuraciones o parámetros, para seguir rigurosamente cada posible ruta.

En el siguiente vídeo podrán visualizar la información referente a los wrappers.





27 comentarios:

  1. Hola! ¿Cuál sería un beneficio que nos impulse a utilizar Wrappers en java?

    ResponderBorrar
  2. hola. uno que es claro en java seria proporcionar un mecanismo para "ajustar" los datos primitivos en un objeto para que estos puedan incluirse en actividades reservadas solo para objetos, como agregarse a Colecciones o devolverse desde un método con un valor de retorno de objeto.

    ResponderBorrar
  3. ¿Hay un limite a la cantidad de capas de abstracción que añaden los wrappers?

    ResponderBorrar
    Respuestas
    1. No hay limites incluso esto representa una ventaja para los programadores valerse de la gran cantidan de herramientas que se han diseñado para la elaboracion de programas.a la hora de ejecutar tu programa puede haber inconveniente por falta de recursos o incluso lineas de codigo muy extensas para los programadores, a la hora de hacer actualizaciones. Ruben Garrote Garcia en su libro ´´Reversing, Ingeniería Inversa´´ pag 232. incluso hace uso de wrapper como sinónimo de capa de abstracion.

      Borrar
  4. ¿Que tan eficiente puede llegar a ser el Wrapper en cuanto al testeo del código, con respecto a otras metodológicas de testing como por ejemplo el TDD?

    ResponderBorrar
    Respuestas
    1. eficiente desde el punto de vista de los desarrolladores o desarrollador, estos tendran la oportunidad de valerse de la gran cantidad de wrapper que existe orientado el testeo a el area donde desarrolla, con respecto al TDD se podria trabajar de manera mas directa si se toman en cuenta los lineamientos que se tienen ya que este seria un poco mas general dependiendo del tipo de proyecto.

      Borrar
  5. Es importante resaltar en este tema que muchas veces se encuentran problemas de conversación de tipos de datos en los wrapper,pero la solución la brinda Java ya que este nos provee clases útiles para manejar este tipo de situaciones.

    ResponderBorrar
  6. ¿Puede existir la posibilidad de que al usar Wrappers en vez de tener beneficios , me acarree problemas? y si es así; cual sería un ejemplo?

    ResponderBorrar
    Respuestas
    1. El objetivo principal del wrapper es proporcionar una forma "diferente" de usar el objeto envuelto (quizás la envoltura proporcione una interfaz más simple o agregue alguna funcionalidad).Generalmente se usa para describir una clase que contiene una instancia de otra clase, pero que no expone directamente esa instancia. Es decir los wrapper se usan para solucionar una problemática no para generarla.

      Borrar
  7. Los Wrappers son conocidos como envoltorios. Además los Wrappers son Clases que envuelven tipos primitivos, en donde cada tipo primitivo tiene su correspondiente Clase. no obstante, los Wrappers están en el paquete java.lang. y son: Byte, Short, Integer, Long, Float, Double, Character y Boolean.

    ResponderBorrar
  8. Como lo explican en su video y en la información presentada, los wrappers se usan para describir una clase que contiene una instancia de otra, denominados también envoltorios, por esta razón también se pueden describir como patrones de diseño, ya que utilizan una fachada para tratar de ocultar o solventar algún tipo de complejidad.

    ResponderBorrar
  9. ¿Puedo utilizar Wrappers para convertir cadenas de caracteres en números?

    ResponderBorrar
    Respuestas
    1. claro que si Los Wrappers java son utilizados para convertir cadenas de caracteres (texto) en números. Esto es útil cuando se leen valores desde el teclado, desde un fichero de texto.

      Borrar
  10. Si las clases Wrappers son complemntos de los tipos de datos primitivos. ¿ Están predefinidas dentro del lenguaje de programación o estas deben ser creadas por el programador?

    ResponderBorrar
    Respuestas
    1. como mencionamos en el video en java se cuentas con wrapper predefinidos para trabajar con los datos primitivos ejemplo de estos son Las clases envoltorio existentes en el API de Java que incorpora las clases envoltorio (wrapper class) son: Byte para byte,Short para short,Integer para int,Long para long,Boolean para boolean,Float para float, Double para double y Character para char.

      Borrar
  11. Aprender sobre wrappers es muy importante sobre todo en java cuando trabajamos con marcos de colección, como ArrayList y Vector, ya que estos solo trabajan con objetos y no con datos de tipo primitivo.

    ResponderBorrar
  12. Sabemos que gracias a las clases wrapper podemos hacer la conversión de un dato primitivo a un objeto (Autoboxing) , pero ¿podemos también hacer lo contrario? , es decir, pasar de un objeto a un dato primitivo; si es así, ¿cómo se llamaria ese proceso?

    ResponderBorrar
    Respuestas
    1. el proceso como tal tiene el nombre de Unboxing o dicho de otra manera desencapsula. pero este proceso describe el proceso inverso.si te pudiste fijar en el Vídeo la imagen del entero dentro de la caja, seria gráficamente sacar el objeto de la caja. aunque tu pregunta puede llegar a confundir porque aclaro que no es pasar un objeto cualquiera a un dato primitivo si no un dato primitivo que anteriormente fue trasnformado por medio de los wrappers

      Borrar
  13. A veces convertir los datos primitivos en objetos puede resultar algo bastante útil, dado a que existen ciertas situaciones en donde nos vemos obligados a hacerlo, podemos tomar como ejemplo los contenedores definidos por la interfaz de programación en el paquete java.util, que generalmente son guardados en la clase object, lo que quiere decir que podemos almacenar cualquier tipo de objetos, pero como sabemos los datos primitivos no son objetos. Es por esto que para resolver este tipo de problemas utilizamos la clase Wrapper que como su nombre lo indica proporciona a los datos primitivos un envoltorio, permitiéndolos de esta manera ser utilizados como objetos.

    ResponderBorrar
  14. ¿Que parámetros se deben considerar para escribir rutinas de verificación de errores en la funcionalidad del sistema?

    ResponderBorrar
    Respuestas
    1. Debemos considerar que algunos lenguajes permiten pasar referencias a funciones como parámetros. En estos lenguajes se puede pasar una función dedicada a manejar errores que sera invocada si la rutina encuentra un problema durante su ejecución. Esto impide que los programadores ignoren verificar el resultado de las funciones que llaman si estás usan alguna de las estrategias indicadas con anterioridad, ya que estás no obligan a verificar si hubieron errores en la ejecución. La función debe identificar el problema y tratar de resolverlo. Si no lo puede hacer, debe terminar el programa, regresar con alguna indicación, seleccionar el error en alguna variable global o simplemente lanzar una excepcion.

      Borrar
  15. En Javascript existe un Object Wrapper que encapsula un tipo de dato primitivo como por ejemplo string y lo convierte en un tipo de objeto que le otorga propiedades y métodos ya preestablecidos facilitándole el trabajo al programador, como por ejemplo toUpperCase() ; que devuelve el valor en mayúsculas o charAt(x) ; que devuelve el carácter en la posición "x".

    ResponderBorrar
  16. Los Wrapper tienen funcionalidades muy peculiares que a la hora de programar son de mucha utilidad, el convertir datos primitivos en objetos, poder utilizar herencia múltiple en lenguajes que no lo permiten pueden llegar a ser funciones de gran provecho, por otra parte, la verificación de errores es fundamental en la programación y con los Wrapper se tiene una opción para efectuarlos.

    ResponderBorrar
  17. Los beneficios que aportan los wrapper al desarrollo de software como las llamadas al contenedor en vez de a la función original permitiendo al programador olvidarse de la comprobación de errores o la transformación de cadena de caracteres son utilidades que se pueden aprovechar muchísimo a la hora de escribir un código.

    ResponderBorrar
  18. Puedes nombrarme algunos de los patrones de diseños en los que se utilice esta técnica?

    ResponderBorrar
    Respuestas
    1. Por lo que tengo entendido el wrapper está dentro de los patrones de diseño del software que soluciona un problema de composición de clases y objetos, wrapper adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría ser utilizada.

      Borrar
  19. Me parecen interesantes los wrappers por que aunque su pueden incrementar la complejidad de un sistema, las ventajas de su utilización nos permiten adaptar dominios de clases diferentes asi como también sus funcionalidades. Sus objetivos son dar soluciones a problemáticas existente en clases y objetos debido a diferentes deficiencias.

    ResponderBorrar