{"id":2308,"date":"2026-05-29T21:47:53","date_gmt":"2026-05-29T21:47:53","guid":{"rendered":"https:\/\/vkrastev1blog.com\/?p=2308"},"modified":"2026-11-03T19:35:02","modified_gmt":"2026-11-03T22:35:02","slug":"questions-and-informations-prepairing-for-java-developer-job-interview","status":"publish","type":"post","link":"https:\/\/vkrastev1blog.com\/2026\/05\/29\/questions-and-informations-prepairing-for-java-developer-job-interview\/","title":{"rendered":"Preguntas e informaci\u00f3n sobre la preparaci\u00f3n para la entrevista de trabajo de desarrollador de Java"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Preguntas e informaci\u00f3n sobre la preparaci\u00f3n de la entrevista para desarrolladores de Java<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"3245\" data-permalink=\"https:\/\/vkrastev1blog.com\/2026\/05\/29\/questions-and-informations-prepairing-for-java-developer-job-interview\/java-developer-interview-preparation-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?fit=1672%2C941&amp;ssl=1\" data-orig-size=\"1672,941\" data-comments-opened=\"1\" data-image-title=\"Java Developer Interview Preparation\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-3245\" srcset=\"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/05\/Java-Developer-Interview-Preparation.jpg?w=1672&amp;ssl=1 1672w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1les son los principios S\u00d3LIDOS?<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el Principio de Responsabilidad \u00danica (SRP)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una clase debe tener solo una responsabilidad y una sola raz\u00f3n para cambiar.<br>Los beneficios incluyen pruebas m\u00e1s sencillas, menor acoplamiento y mejor organizaci\u00f3n.<br>Ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public class Book {<\/div><div class=\"cm-line\">private String name;<\/div><div class=\"cm-line\">private String author;<\/div><div class=\"cm-line\">private String text;<\/div><div class=\"cm-line\">\/\/ constructor, getters, and setters<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el principio abierto-cerrado (OCP)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los componentes de software (clases, m\u00f3dulos, funciones) deben estar abiertos a la extensi\u00f3n pero cerrados a la modificaci\u00f3n.<br>Esto se logra mediante el uso de interfaces, clases abstractas y herencia.<br>Ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">interface Shape {<\/div><div class=\"cm-line\">double area();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\">class Circle implements Shape <\/div><div class=\"cm-line\">{ \/* implementation \/ } <\/div><div class=\"cm-line\">class Rectangle implements Shape <\/div><div class=\"cm-line\">{ \/ implementation *\/ }<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el principio de sustituci\u00f3n de Liskov (LSP)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los subtipos deben poder reemplazar sus tipos base sin cambiar la correcci\u00f3n del programa. Esto sigue la relaci\u00f3n &#8220;es-un&#8221;.<br>Ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">class Bird <\/div><div class=\"cm-line\">{ \/* common bird behavior \/ } <\/div><div class=\"cm-line\">class Sparrow extends Bird <\/div><div class=\"cm-line\">{ \/ specific sparrow behavior *\/ }<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el principio de segregaci\u00f3n de interfaces (ISP)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No se debe obligar a los clientes a depender de interfaces que no utilizan. Divida las interfaces grandes en otras m\u00e1s peque\u00f1as y espec\u00edficas.<br>Ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">interface Worker {<\/div><div class=\"cm-line\">void work();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\">interface Eater {<\/div><div class=\"cm-line\">void eat();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\">class Robot implements Worker <\/div><div class=\"cm-line\">{ \/* implementation *\/ }<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el principio de inversi\u00f3n de dependencia (DIP)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los m\u00f3dulos de nivel superior no deben depender de m\u00f3dulos de nivel inferior; ambos tipos deben depender de abstracciones. Las abstracciones no deber\u00edan depender de detalles; los detalles deben depender de abstracciones.<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">\/\/ Abstraction<\/div><div class=\"cm-line\">interface MessageSender {<\/div><div class=\"cm-line\">void sendMessage(String message);<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ High-level module<\/div><div class=\"cm-line\">class NotificationService {<\/div><div class=\"cm-line\">private MessageSender messageSender;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public NotificationService(MessageSender messageSender) {<\/div><div class=\"cm-line\">this.messageSender = messageSender;<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void send(String message) {<\/div><div class=\"cm-line\">messageSender.sendMessage(message);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Low-level module<\/div><div class=\"cm-line\">class EmailSender implements MessageSender {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void sendMessage(String message) {<\/div><div class=\"cm-line\">System.out.println(&quot;Sending Email: &quot; + message);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Another Low-level module<\/div><div class=\"cm-line\">class SmsSender implements MessageSender {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void sendMessage(String message) {<\/div><div class=\"cm-line\">System.out.println(&quot;Sending SMS: &quot; + message);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Use SmsSender<\/div><div class=\"cm-line\">MessageSender smsSender = new SmsSender();<\/div><div class=\"cm-line\">NotificationService notificationService2 = <\/div><div class=\"cm-line\">              new NotificationService(smsSender);<\/div><div class=\"cm-line\">notificationService2.send(&quot;Hello via SMS!&quot;);<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La interfaz MessageSender sirve como abstracci\u00f3n. El m\u00f3dulo de nivel superior NotificationService depende de esta abstracci\u00f3n en lugar de implementaciones concretas.<br>Los m\u00f3dulos de nivel inferior como EmailSender y SmsSender tambi\u00e9n dependen de la abstracci\u00f3n al implementar la interfaz MessageSender.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es la normalizaci\u00f3n en SQL?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfQu\u00e9 es la normalizaci\u00f3n?<br>La normalizaci\u00f3n implica estructurar los datos en una base de datos relacional para eliminar anomal\u00edas como la redundancia. Divide tablas grandes y complejas en otras m\u00e1s peque\u00f1as preservando al mismo tiempo las relaciones entre los datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfPor qu\u00e9 es importante la normalizaci\u00f3n?<br>Reduce la redundancia: Al dividir los datos en tablas m\u00e1s peque\u00f1as, evitamos almacenar la misma informaci\u00f3n varias veces.<br>Mejora el rendimiento de las consultas: las tablas normalizadas m\u00e1s peque\u00f1as conducen a una ejecuci\u00f3n m\u00e1s r\u00e1pida de las consultas.<br>Minimiza anomal\u00edas de actualizaci\u00f3n: Se pueden realizar cambios sin afectar otros registros.<br>Mejora la integridad de los datos: garantiza datos consistentes y precisos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escenarios para aplicar la Normalizaci\u00f3n<br>Integridad de los datos: evita inconsistencias al actualizar los datos (por ejemplo, cuando cambia la edad de un cliente).<br>Consultas eficientes: simplifica las consultas complejas al desglosar los datos.<br>Optimizaci\u00f3n del almacenamiento: elimina el exceso de redundancia para ahorrar espacio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es un monolito de microservicios?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfQu\u00e9 es un monolito?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La aplicaci\u00f3n monol\u00edtica est\u00e1 construida como un m\u00f3dulo \u00fanico y completo. Conecta estrechamente todos los componentes (como la interfaz de usuario del lado del cliente, la base de datos y la aplicaci\u00f3n del lado del servidor) en una base de c\u00f3digo com\u00fan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ventajas:<br>Implementaci\u00f3n sencilla: dado que se trata de un \u00fanico archivo o directorio ejecutable, la implementaci\u00f3n es sencilla y directa.<br>Velocidad de desarrollo: En las primeras etapas de la vida de un proyecto, monolith permite un r\u00e1pido desarrollo gracias a su simplicidad.<br>Rendimiento: una base de c\u00f3digo centralizada puede manejar varias funciones de manera eficiente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 son los microservicios?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los microservicios dividen la aplicaci\u00f3n en servicios m\u00e1s peque\u00f1os que se pueden implementar de forma independiente. Cada servicio se centra en un dominio empresarial espec\u00edfico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ventajas:<br>Escalabilidad: los microservicios permiten escalar componentes individuales independientemente unos de otros.<br>Flexibilidad: los desarrolladores pueden elegir diferentes tecnolog\u00edas para cada servicio.<br>Aislamiento: los errores en un servicio no afectan a los dem\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desaf\u00edos:<br>Complejidad: la gesti\u00f3n de m\u00faltiples servicios requiere una orquestaci\u00f3n confiable.<br>Gastos generales de red: la comunicaci\u00f3n entre servicios introduce latencia.<br>Complejidad de la implementaci\u00f3n: coordinar actualizaciones entre m\u00faltiples servicios puede ser un desaf\u00edo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el polimorfismo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anulaci\u00f3n de m\u00e9todo:<br>Cuando una subclase proporciona una implementaci\u00f3n espec\u00edfica para un m\u00e9todo ya definido en su superclase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobrecarga de m\u00e9todos:<br>Cuando una clase tiene m\u00faltiples m\u00e9todos con el mismo nombre, pero con diferentes par\u00e1metros (diferente n\u00famero o tipos de argumentos).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1l es el objetivo de los constructores privados?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los constructores privados se utilizan en clases de utilidad o clases constantes.<br>Estas clases contienen s\u00f3lo m\u00e9todos o miembros est\u00e1ticos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Evitar la herencia (evitar la subclasificaci\u00f3n)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Delegaci\u00f3n de Constructores:<br>Los constructores privados permiten la delegaci\u00f3n de constructores, donde constructores espec\u00edficos llaman a un constructor privado com\u00fan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Patr\u00f3n singleton<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Para la JVM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compilaci\u00f3n:<br>Cuando compila un archivo .java, el compilador de Java genera archivos .class que contienen c\u00f3digo de bytes (representaci\u00f3n intermedia).<br>Bytecode es independiente de la plataforma y se puede ejecutar en cualquier sistema con una JVM compatible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Subsistema de carga de clases:<br>Responsable de cargar clases en la memoria.<br>Lee los archivos .class, genera datos binarios y los almacena en el \u00e1rea de m\u00e9todos.<br>Crea un objeto Class que representa la clase cargada en la memoria del mont\u00f3n.<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">Example: <\/div><div class=\"cm-line\">Student s1 = new Student(); <\/div><div class=\"cm-line\">Class c1 = s1.getClass();<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Campo de golf:<br>Consta de tres pasos:<br>Verificaci\u00f3n: Comprueba la exactitud del archivo .class.<br>Preparaci\u00f3n: Para la memoria lateral de las variables de clase y las inicializa.<br>Resoluci\u00f3n (opcional): resuelve referencias simb\u00f3licas a otras clases o m\u00e9todos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inicializaci\u00f3n:<br>Ejecuta inicializadores est\u00e1ticos (por ejemplo, bloques est\u00e1ticos) e inicializa variables est\u00e1ticas.<br>Las variables de instancia se inicializan cuando se crea el objeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Motor de ejecuci\u00f3n:<br>Convierte c\u00f3digo de bytes a c\u00f3digo de m\u00e1quina.<br>Incluye compilaci\u00f3n Just-In-Time (JIT) para optimizar el rendimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, la JVM permite que los programas Java se ejecuten en cualquier lugar interpretando el c\u00f3digo de bytes y administrando la memoria.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es un m\u00e9todo abstracto privado?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Casos de uso para m\u00e9todos privados en clases abstractas:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque los m\u00e9todos abstractos no pueden ser privados, puedes utilizar m\u00e9todos privados en una clase abstracta para varios prop\u00f3sitos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00e9todos auxiliares: implemente una funcionalidad com\u00fan que comparten otros m\u00e9todos.<br>Encapsulaci\u00f3n: oculta los detalles de implementaci\u00f3n de las subclases.<br>Clases tipo estructura: cree clases peque\u00f1as con m\u00e9todos privados que sirvan como contenedores de datos<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el recolector de basura?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Memoria del mont\u00f3n:<br>Los objetos Java se crean en la memoria din\u00e1mica, un \u00e1rea de memoria especialmente asignada.<br>Algunos objetos dejan de estar disponibles (el programa ya no hace referencia a ellos).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recolector de basura (GC):<br>GC identifica y elimina objetos no utilizados para liberar memoria.<br>Funciona autom\u00e1ticamente en segundo plano.<br>Dos tipos:<br>GC menor: elimina objetos no disponibles en la generaci\u00f3n joven.<br>Major GC (GC completo): borra objetos de la generaci\u00f3n anterior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beneficios:<br>Los desarrolladores no necesitan eliminar objetos manualmente.<br>GC garantiza la disponibilidad de la memoria y evita OutOfMemoryErrors.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es la programaci\u00f3n orientada a objetos?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuatro principios de la programaci\u00f3n orientada a objetos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Encapsulaci\u00f3n: agrupar datos (atributos) y m\u00e9todos (funciones) en una clase para ocultar detalles de implementaci\u00f3n y proporcionar una interfaz limpia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herencia: Crear nuevas clases basadas en las existentes, heredando sus atributos y comportamiento. Esto fomenta la reutilizaci\u00f3n del c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Polimorfismo: permite tratar objetos de diferentes clases de la misma manera a trav\u00e9s de una interfaz com\u00fan. Esto proporciona flexibilidad y hace que el sistema sea m\u00e1s f\u00e1cil de expandir (extensibilidad).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Abstracci\u00f3n: centrarse en caracter\u00edsticas importantes ocultando complejidades innecesarias. La abstracci\u00f3n simplifica el dise\u00f1o y lo hace m\u00e1s f\u00e1cil de mantener y gestionar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Las propiedades ACID desempe\u00f1an un papel clave para garantizar la confiabilidad y coherencia de las transacciones.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Atomicidad:<br>Las transacciones se ejecutan por completo o no se ejecutan en absoluto.<br>No hay confirmaci\u00f3n parcial: si una transacci\u00f3n falla en el medio, todos los cambios realizados en la base de datos se revierten.<br>Ejemplo: Considere una transferencia de $100 de la cuenta X a la cuenta Y. Si la transacci\u00f3n falla despu\u00e9s de retirar el monto de X pero antes de agregarlo a Y, la base de datos permanece consistente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consistencia:<br>La base de datos debe mantener sus restricciones de integridad antes y despu\u00e9s de una transacci\u00f3n.<br>Ejemplo: Si el total antes de la transacci\u00f3n es $700 (X: $500, Y: $200), debe permanecer igual despu\u00e9s de la transacci\u00f3n (X: $400, Y: $300).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aislamiento:<br>Se pueden ejecutar varias transacciones simult\u00e1neamente sin afectarse entre s\u00ed.<br>Los cambios realizados por una transacci\u00f3n no son visibles para otras hasta que se confirman.<br>Se garantiza un resultado equivalente al que se obtendr\u00eda si las transacciones se ejecutaran en serie.<br>Ejemplo: el aislamiento de transacciones evita estados inconsistentes causados \u200b\u200bpor operaciones entrelazadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Durabilidad:<br>Una vez que se confirma una transacci\u00f3n, sus cambios se vuelven permanentes.<br>Los cambios sobreviven a fallos o ca\u00eddas del sistema.<br>Se garantiza el almacenamiento de datos a largo plazo.<br>Ejemplo: incluso despu\u00e9s de reiniciar el sistema, los cambios confirmados permanecen guardados.<br>Recuerde, las propiedades ACID proporcionan la base para operaciones de bases de datos confiables y consistentes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es la plantilla de estrategia?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Descripci\u00f3n: Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Esto permite que un algoritmo cambie independientemente de los clientes que lo utilicen.<br>Ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">\/\/ Interface for eat behavior<\/div><div class=\"cm-line\">interface EatBehavior {<\/div><div class=\"cm-line\">void eat();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Concrete implementations of eat behavior<\/div><div class=\"cm-line\">class NormalDiet implements EatBehavior {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void eat() {<\/div><div class=\"cm-line\">\/\/ Normal food<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">class LosingWeightDiet implements EatBehavior {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void eat() {<\/div><div class=\"cm-line\">\/\/ Healthy food<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Cat class with eat behavior<\/div><div class=\"cm-line\">abstract class Cat {<\/div><div class=\"cm-line\">EatBehavior eatBehavior;<\/div><div class=\"cm-line\">public void eat() {<\/div><div class=\"cm-line\">    eatBehavior.eat();<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public void setEatBehavior(EatBehavior eatBehavior) {<\/div><div class=\"cm-line\"> this.eatBehavior = eatBehavior;<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Usage<\/div><div class=\"cm-line\">Cat cat = new Cat();<\/div><div class=\"cm-line\">cat.setEatBehavior(new LosingWeightDiet());<\/div><div class=\"cm-line\">cat.eat(); \/\/ Cat eats with a healthier diet<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Patrones creacionales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Estas plantillas se centran en la creaci\u00f3n de instancias de clases.<br>Los ejemplos incluyen<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">m\u00e9todo de f\u00e1brica,<br>Planteamiento del problema: supongamos que queremos crear diferentes tipos de productos (por ejemplo, autom\u00f3viles, bicicletas) sin vincular estrechamente nuestro c\u00f3digo a implementaciones espec\u00edficas.<br>Componentes clave:<br>Producto: una clase o interfaz abstracta que define las operaciones generales para los objetos que crear\u00e1 la f\u00e1brica.<br>Productos concretos: clases reales que implementan la interfaz Producto y representan tipos de objetos concretos.<br>Creador: una clase o interfaz abstracta que declara el m\u00e9todo de f\u00e1brica. Es responsable de crear objetos Producto, pero delega la creaci\u00f3n real de subclases.<br>Creadores Concretos: Subclases de Creator que implementan el m\u00e9todo de f\u00e1brica. Ellos deciden qu\u00e9 producto de hormig\u00f3n en particular crear en funci\u00f3n de los par\u00e1metros de entrada o la configuraci\u00f3n.<br>M\u00e9todo de f\u00e1brica: un m\u00e9todo definido en la clase Creator que crea objetos Producto. Por lo general, se declara abstracto en Creator y se implementa en Concrete Creators.<br>Ejemplo en Java: Digamos que tenemos una F\u00e1brica que produce diferentes tipos de veh\u00edculos. Aqu\u00ed hay un ejemplo simplificado:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Abstract<\/span> <span class=\"tok-keyword\">Product<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">interface<\/span> <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">display<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Concrete<\/span> <span class=\"tok-keyword\">Products<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Car<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">display<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Car created&quot;<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Bike<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">display<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Bike created&quot;<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Creator<\/span> <span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">Factory<\/span><span class=\"tok-punctuation\">)<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">interface<\/span> <span class=\"tok-keyword\">Factory<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Product<\/span> <span class=\"tok-keyword\">factoryMethod<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Concrete<\/span> <span class=\"tok-keyword\">Creators<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">ConcreteFactoryA<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">Factory<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-keyword\">factoryMethod<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Car<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">ConcreteFactoryB<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">Factory<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-keyword\">factoryMethod<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Bike<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">FactoryMethodExample<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Factory<\/span> <span class=\"tok-keyword\">factoryA<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">ConcreteFactoryA<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Product<\/span> <span class=\"tok-keyword\">productA<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">factoryA<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">factoryMethod<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">productA<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">display<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Factory<\/span> <span class=\"tok-keyword\">factoryB<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">ConcreteFactoryB<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">Product<\/span> <span class=\"tok-keyword\">productB<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">factoryB<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">factoryMethod<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">productB<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">display<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Constructor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n Builder es un patr\u00f3n de dise\u00f1o creativo que le permite construir objetos complejos paso a paso,<br>separando su construcci\u00f3n de su representaci\u00f3n. Aqu\u00ed hay un ejemplo simple en Java:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Define<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">you<\/span> <span class=\"tok-keyword\">want<\/span> <span class=\"tok-keyword\">to<\/span> <span class=\"tok-keyword\">build<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Post<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">final<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">final<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">final<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Post<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-keyword\">builder<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">title<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">builder<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">title<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">text<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">builder<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">text<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">category<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">builder<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">category<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Getters<\/span> <span class=\"tok-keyword\">for<\/span> <span class=\"tok-keyword\">properties<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">getTitle<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">getText<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">getCategory<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-keyword\">class<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">title<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">title<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">text<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">text<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Builder<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">category<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">category<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Post<\/span> <span class=\"tok-keyword\">build<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Post<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">this<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Usage<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Main<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Post<\/span> <span class=\"tok-keyword\">post<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Post<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">Builder<\/span><span class=\"tok-punctuation\">()<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">title<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Java Builder Pattern&quot;<\/span><span class=\"tok-punctuation\">)<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">text<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Explaining how to implement the Builder Pattern in Java&quot;<\/span><span class=\"tok-punctuation\">)<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">category<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Design Patterns&quot;<\/span><span class=\"tok-punctuation\">)<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">build<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Title: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-keyword\">post<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getTitle<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Text: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-keyword\">post<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getText<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Category: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-keyword\">post<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getCategory<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Prototipo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prototipo<\/strong><br><br>El patr\u00f3n prototipo es un patr\u00f3n de dise\u00f1o creativo que le permite crear nuevos objetos copiando un objeto existente.<br>En lugar de crear nuevas instancias desde cero, se clona un prototipo existente, que puede ser m\u00e1s eficiente y flexible. Veamos un ejemplo en Java:<br><strong>Definir la interfaz del prototipo<\/strong>: Primero creamos una clase o interfaz abstracta llamada <code>Tree<\/code>, con un m\u00e9todo abstracto <code>copy()<\/code>:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public abstract class Tree {<\/div><div class=\"cm-line\">public abstract Tree copy();<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Prototipos de hormig\u00f3n<\/strong>: A continuaci\u00f3n, implementamos dos clases concretas que extienden <code>Tree<\/code>: <code>PlasticTree<\/code> y <code>PineTree<\/code>. Estas clases representan tipos espec\u00edficos de \u00e1rboles y proporcionan su propia implementaci\u00f3n de m\u00e9todos. <code>copy()<\/code>:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public class PlasticTree extends Tree {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public Tree copy() {<\/div><div class=\"cm-line\">PlasticTree plasticTreeClone = new PlasticTree(this.getMass(), <\/div><div class=\"cm-line\">this.getHeight());<\/div><div class=\"cm-line\">plasticTreeClone.setPosition(this.getPosition());<\/div><div class=\"cm-line\">return plasticTreeClone;<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class PineTree extends Tree {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public Tree copy() {<\/div><div class=\"cm-line\">PineTree pineTreeClone = new PineTree(this.getMass(), <\/div><div class=\"cm-line\">this.getHeight());<\/div><div class=\"cm-line\">pineTreeClone.setPosition(this.getPosition());<\/div><div class=\"cm-line\">return pineTreeClone;<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>En estas clases personalizamos el proceso de clonaci\u00f3n seg\u00fan el tipo de \u00e1rbol espec\u00edfico. Por ejemplo, copiamos <em>masa<\/em>, <em>altura<\/em> y <em>posici\u00f3n<\/em> del \u00e1rbol original.<br><strong>Uso<\/strong>: Ahora creemos una instancia de nuestros prototipos concretos:<br>Java<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Main<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Tree<\/span> <span class=\"tok-keyword\">originalPlasticTree<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">PlasticTree<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-number\">10<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-number\">5<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Tree<\/span> <span class=\"tok-keyword\">clonedPlasticTree<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">originalPlasticTree<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">copy<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">Tree<\/span> <span class=\"tok-keyword\">originalPineTree<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">PineTree<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-number\">15<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-number\">8<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">Tree<\/span> <span class=\"tok-keyword\">clonedPineTree<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">originalPineTree<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">copy<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Use<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">cloned<\/span> <span class=\"tok-keyword\">trees<\/span> <span class=\"tok-keyword\">as<\/span> <span class=\"tok-keyword\">needed<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-operator\">...<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 son los patrones estructurales?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Estas plantillas se refieren a la estructura y composici\u00f3n de una clase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Patr\u00f3n de adaptador<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n de adaptador es un patr\u00f3n de dise\u00f1o estructural que permite que dos interfaces incompatibles funcionen juntas.<br>Act\u00faa como un puente entre estas interfaces, permiti\u00e9ndoles cooperar sin cambiar su c\u00f3digo fuente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptador de objetos:<br>En este enfoque, utilizamos la composici\u00f3n para delegar la l\u00f3gica al adaptador.<br>El Adaptador contiene un Adaptee y delega el m\u00e9todo request() al m\u00e9todo espec\u00edficoRequest() en el Adaptee.<br><\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">class Adaptee {<\/div><div class=\"cm-line\">void specificRequest() {<\/div><div class=\"cm-line\">System.out.println(&quot;Adaptee&apos;s specific request&quot;);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Target interface<\/div><div class=\"cm-line\">interface Target {<\/div><div class=\"cm-line\">void request();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Adapter (using composition)<\/div><div class=\"cm-line\">class Adapter implements Target {<\/div><div class=\"cm-line\">private final Adaptee adaptee;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">Adapter(Adaptee adaptee) {<\/div><div class=\"cm-line\">    this.adaptee = adaptee;<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void request() {<\/div><div class=\"cm-line\">    adaptee.specificRequest();<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Adaptador de clase:<br>Requiere herencia m\u00faltiple (directamente imposible en Java).<br>Podemos lograr esto usando interfaces con m\u00e9todos predeterminados.<br>El Adaptador hereda de las clases Target y Adaptee.<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">\/\/ Target interface<\/div><div class=\"cm-line\">interface Target {<\/div><div class=\"cm-line\">void request();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Adaptee (existing class)<\/div><div class=\"cm-line\">class Adaptee {<\/div><div class=\"cm-line\">void specificRequest() {<\/div><div class=\"cm-line\">System.out.println(&quot;Adaptee&apos;s specific request&quot;);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">\/\/ Adapter (using class inheritance)<\/div><div class=\"cm-line\">class Adapter extends Adaptee implements Target {<\/div><div class=\"cm-line\">@Override<\/div><div class=\"cm-line\">public void request() {<\/div><div class=\"cm-line\">specificRequest();<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>Beneficios y compensaciones:<br>Class Adapter funciona bien para el mapeo uno a uno de m\u00e9todos.<br>Object Adapter proporciona m\u00e1s flexibilidad y evita la modificaci\u00f3n del c\u00f3digo fuente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Patr\u00f3n decorador<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El Patr\u00f3n Decorador es un patr\u00f3n de dise\u00f1o creativo que le permite agregar din\u00e1micamente funcionalidad y comportamiento a un objeto sin<br>para influir en el comportamiento de otros objetos existentes en la misma clase. Es especialmente \u00fatil cuando desea ampliar las capacidades de un objeto,<br>sin cambiar su estructura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Descripci\u00f3n general:<br>El Patr\u00f3n Decorador proporciona una interfaz extendida para el objeto original &#8220;envolvi\u00e9ndolo&#8221; con funcionalidad adicional.<br>Preferimos la composici\u00f3n a la herencia para reducir la sobrecarga de la subclasificaci\u00f3n.<br>Se pueden agregar decoradores en tiempo de ejecuci\u00f3n, lo que proporciona flexibilidad.<br>Escenario de ejemplo: Supongamos que tenemos un objeto \u00c1rbol de Navidad y queremos decorarlo con varios elementos como guirnaldas, oropel y luces de burbujas. Seguiremos las convenciones de dise\u00f1o originales de Gang of Four.<br>Implementaci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-keyword\">First<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">create<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">interface<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Java<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">interface<\/span> <span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Implement<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">interface<\/span> <span class=\"tok-keyword\">with<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-keyword\">basic<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Java<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">ChristmasTreeImpl<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">@<\/span><span class=\"tok-keyword\">Override<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">return<\/span> <span class=\"tok-string\">&quot;Christmas tree&quot;<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Next<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">create<\/span> <span class=\"tok-keyword\">an<\/span> <span class=\"tok-keyword\">abstract<\/span> <span class=\"tok-keyword\">TreeDecorator<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">that<\/span> <span class=\"tok-keyword\">implements<\/span> <\/div><div class=\"cm-line\"><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">and<\/span> <span class=\"tok-keyword\">holds<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">decorated<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Java<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">abstract<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">TreeDecorator<\/span> <span class=\"tok-keyword\">implements<\/span> <span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">private<\/span> <span class=\"tok-keyword\">final<\/span> <span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">TreeDecorator<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">this<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">tree<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">@<\/span><span class=\"tok-keyword\">Override<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Now<\/span> <span class=\"tok-keyword\">create<\/span> <span class=\"tok-keyword\">specific<\/span> <span class=\"tok-keyword\">decorators<\/span><span class=\"tok-operator\">.<\/span> <span class=\"tok-keyword\">For<\/span> <span class=\"tok-keyword\">example<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">BubbleLights<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Java<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">BubbleLights<\/span> <span class=\"tok-keyword\">extends<\/span> <span class=\"tok-keyword\">TreeDecorator<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">BubbleLights<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-keyword\">super<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">tree<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">@<\/span><span class=\"tok-keyword\">Override<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">super<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-string\">&quot; with Bubble Lights&quot;<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Garland<\/span> <span class=\"tok-keyword\">extends<\/span> <span class=\"tok-keyword\">TreeDecorator<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">Garland<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">super<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">tree<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">@<\/span><span class=\"tok-keyword\">Override<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">return<\/span> <span class=\"tok-keyword\">super<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">()<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-string\">&quot; with Garland&quot;<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Usage<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Create<\/span> <span class=\"tok-keyword\">decorated<\/span> <span class=\"tok-keyword\">trees<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">DecoratorPatternDemo<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree1<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Garland<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">ChristmasTreeImpl<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">tree1<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span> <\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-variableName2\">Output: &quot;Christmas tree with Garland&quot;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">ChristmasTree<\/span> <span class=\"tok-keyword\">tree2<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">BubbleLights<\/span><span class=\"tok-punctuation\">(<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Garland<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">Garland<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">ChristmasTreeImpl<\/span><span class=\"tok-punctuation\">())))<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">tree2<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">decorate<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span> <\/div><div class=\"cm-line\">    <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-variableName2\">Output: &quot;Christmas tree with Garland with Garland <\/span><\/div><div class=\"cm-line\">    <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">with<\/span> <span class=\"tok-keyword\">Bubble<\/span> <span class=\"tok-keyword\">Lights<\/span><span class=\"tok-string\">&quot;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-string\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-string\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>Pattern permite agregar decoradores en tiempo de ejecuci\u00f3n, brindando flexibilidad para decorar seg\u00fan sea necesario.<br>Recuerde, el Patr\u00f3n Decorador se usa ampliamente en situaciones en las que desea ampliar el comportamiento de un objeto sin modificar su estructura b\u00e1sica.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Patr\u00f3n de fachada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n de fachada es un patr\u00f3n de dise\u00f1o estructural que simplifica la interacci\u00f3n con un subsistema complejo al proporcionar una interfaz unificada.<br>Act\u00faa como una &#8220;puerta de entrada&#8221; para ocultar la complejidad interna y hacer que el sistema sea m\u00e1s f\u00e1cil de usar para los clientes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Compuesto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n compuesto es un patr\u00f3n de dise\u00f1o estructural que le permite componer objetos en estructuras de \u00e1rbol para representar jerarqu\u00edas de parte y todo.<br>La idea principal detr\u00e1s del patr\u00f3n compuesto es construir una estructura de \u00e1rbol de objetos, donde los objetos individuales (hoja) y los objetos compuestos comparten una interfaz com\u00fan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Componente base (Departamento): Definiremos una interfaz de Departamento simple como nuestro componente base:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">public interface Department {<\/div><div class=\"cm-line\">void printDepartmentName();<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">Leaf Components (FinancialDepartment and SalesDepartment): <\/div><div class=\"cm-line\">Let\u2019s create classes for financial and sales departments, <\/div><div class=\"cm-line\">both implementing the Department interface:<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class FinancialDepartment implements Department {<\/div><div class=\"cm-line\">  \/\/ Implementation details (e.g., id, name)<\/div><div class=\"cm-line\">  public void printDepartmentName() {<\/div><div class=\"cm-line\">  System.out.println(getClass().getSimpleName());<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class SalesDepartment implements Department {<\/div><div class=\"cm-line\">  \/\/ Implementation details (e.g., id, name)<\/div><div class=\"cm-line\">  public void printDepartmentName() {<\/div><div class=\"cm-line\">  System.out.println(getClass().getSimpleName());<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">These leaf classes implement the printDepartmentName() <\/div><div class=\"cm-line\">method and don\u2019t contain references to other Department objects.<\/div><div class=\"cm-line\">Composite Element (HeadDepartment): As a composite class, <\/div><div class=\"cm-line\">let\u2019s create a HeadDepartment that holds a collection of <\/div><div class=\"cm-line\">Department components:<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">import java.util.ArrayList;<\/div><div class=\"cm-line\">import java.util.List;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class HeadDepartment implements Department {<\/div><div class=\"cm-line\">  private Integer id;<\/div><div class=\"cm-line\">  private String name;<\/div><div class=\"cm-line\">  private List childDepartments;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">  public HeadDepartment(Integer id, String name) {<\/div><div class=\"cm-line\">    this.id = id;<\/div><div class=\"cm-line\">    this.name = name;<\/div><div class=\"cm-line\">    this.childDepartments = new ArrayList&lt;&gt;();<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">  public void printDepartmentName() {<\/div><div class=\"cm-line\">    childDepartments.forEach(Department::printDepartmentName);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">  public void addDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.add(department);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">  public void removeDepartment(Department department) {<\/div><div class=\"cm-line\">    childDepartments.remove(department);<\/div><div class=\"cm-line\">  }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La clase HeadDepartment implementa el m\u00e9todo printDepartmentName() y proporciona m\u00e9todos para agregar y eliminar departamentos secundarios.<br>Uso: Puede crear instancias de departamentos hoja (por ejemplo, Departamento Financiero, Departamento de Ventas) y departamentos compuestos (por ejemplo, Departamento Principal). Agregue departamentos de hoja al compuesto e imprima sus nombres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Main<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">Department<\/span> <span class=\"tok-keyword\">finance<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">FinancialDepartment<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">Department<\/span> <span class=\"tok-keyword\">sales<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">SalesDepartment<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">HeadDepartment<\/span> <span class=\"tok-keyword\">headDepartment<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">HeadDepartment<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-number\">1<\/span><span class=\"tok-operator\">,<\/span> <\/div><div class=\"cm-line\">    <span class=\"tok-string\">&quot;Company Departments&quot;<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">headDepartment<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">addDepartment<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">finance<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">headDepartment<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">addDepartment<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">sales<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">headDepartment<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">printDepartmentName<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">Output<\/span><span class=\"tok-operator\">:<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">FinancialDepartment<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">SalesDepartment<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n compuesto le permite crear estructuras de \u00e1rbol flexibles donde<br>Los objetos individuales y las composiciones (composites) se pueden tratar de manera uniforme.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es la funci\u00f3n HASH?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una funci\u00f3n hash es una funci\u00f3n matem\u00e1tica que toma una entrada (o &#8220;mensaje&#8221;) y devuelve una cadena de caracteres de longitud fija,<br>que suele ser una secuencia de n\u00fameros y letras. Esta salida se denomina &#8220;valor hash&#8221; o simplemente &#8220;hash&#8221;. <br>Las funciones hash se utilizan ampliamente en inform\u00e1tica y criptograf\u00eda y tienen varias propiedades importantes:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo se utiliza una funci\u00f3n hash y c\u00f3mo funciona?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Determinista: la misma entrada siempre generar\u00e1 el mismo hash.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e1pido: la funci\u00f3n puede calcular r\u00e1pidamente el valor hash para cualquier entrada.<br>\u00danico (casi): dos entradas diferentes deber\u00edan generar valores hash diferentes (tratamos de minimizar las &#8220;colisiones&#8221;).<br>Irreversible (unidireccional): dado un hash, deber\u00eda ser computacionalmente inviable recuperar la entrada original.<br>Uniforme: los valores hash se distribuyen uniformemente en el espacio de origen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las funciones hash se utilizan ampliamente en diversas aplicaciones, como por ejemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Integridad de los datos: para garantizar que los datos no hayan sido alterados o alterados mediante la comparaci\u00f3n de valores hash.<br>Almacenamiento de contrase\u00f1as: para el almacenamiento seguro de contrase\u00f1as hash en lugar de contrase\u00f1as reales.<br>Criptograf\u00eda: Utilizada en firmas digitales y otros algoritmos criptogr\u00e1ficos.<br>Tablas hash: para una recuperaci\u00f3n eficiente de datos en programaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dame un ejemplo de un mapa hash: \u00bfc\u00f3mo lo implementar\u00edas?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SHA (algoritmo hash seguro):<br>Incluye variantes como SHA-1, SHA-256, SHA-384 y SHA-512.<br>SHA-256 y SHA-512 se utilizan ampliamente en criptograf\u00eda y tecnolog\u00edas blockchain (por ejemplo, Bitcoin).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-keyword\">import<\/span> <span class=\"tok-keyword\">java<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">security<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">MessageDigest<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">import<\/span> <span class=\"tok-keyword\">java<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">security<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">NoSuchAlgorithmException<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">HashExample<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">try<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">The<\/span> <span class=\"tok-keyword\">input<\/span> <span class=\"tok-keyword\">string<\/span> <span class=\"tok-keyword\">to<\/span> <span class=\"tok-keyword\">be<\/span> <span class=\"tok-keyword\">hashed<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">input<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-string\">&quot;Hello, world!&quot;<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Create<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-keyword\">MessageDigest<\/span> <span class=\"tok-keyword\">instance<\/span> <span class=\"tok-keyword\">for<\/span> <span class=\"tok-keyword\">SHA<\/span><span class=\"tok-operator\">-<\/span><span class=\"tok-number\">256<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">MessageDigest<\/span> <span class=\"tok-keyword\">digest<\/span> <span class=\"tok-operator\">=<\/span> <\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">MessageDigest<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getInstance<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;SHA-256&quot;<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Compute<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">hash<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">byte<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">hash<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">digest<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">digest<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">input<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getBytes<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Convert<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">hash<\/span> <span class=\"tok-keyword\">bytes<\/span> <span class=\"tok-keyword\">to<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-keyword\">hexadecimal<\/span> <span class=\"tok-keyword\">string<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">StringBuilder<\/span> <span class=\"tok-keyword\">hexString<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">new<\/span> <span class=\"tok-keyword\">StringBuilder<\/span><span class=\"tok-punctuation\">()<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">for<\/span> <span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">byte<\/span> <span class=\"tok-variableName2\">b : hash) {<\/span><\/div><div class=\"cm-line\">            <span class=\"tok-keyword\">String<\/span> <span class=\"tok-keyword\">hex<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-keyword\">String<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">format<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;%02x&quot;<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">            <span class=\"tok-keyword\">hexString<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">append<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">hex<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Print<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">resulting<\/span> <span class=\"tok-keyword\">hash<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;SHA-256 Hash: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">hexString<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">toString<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span> <span class=\"tok-keyword\">catch<\/span> <span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">NoSuchAlgorithmException<\/span> <span class=\"tok-keyword\">e<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">err<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Error: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-keyword\">e<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">getMessage<\/span><span class=\"tok-punctuation\">())<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\">  <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Datos de entrada: la variable de entrada contiene los datos que queremos aplicar hash.<br>Inicializaci\u00f3n de MessageDigest: la instancia de MessageDigest se crea utilizando getInstance(&#8220;SHA-256&#8221;), que especifica el algoritmo hash SHA-256.<br>Hashing: el m\u00e9todo de resumen calcula el valor hash de los datos de entrada.<br>Conversi\u00f3n hexadecimal: dado que el valor hash est\u00e1 en formato binario, usamos un bucle para convertirlo a una cadena hexadecimal m\u00e1s legible.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPoner y parchear? \u00bfCu\u00e1ndo debemos usarlos?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PUT y PATCH son m\u00e9todos HTTP que se utilizan para actualizar recursos en el servidor, pero difieren en c\u00f3mo aplican los cambios:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PONER:<br>Actualizaci\u00f3n completa:<br>PUT se utiliza para reemplazar completamente un recurso existente.<br>Se debe presentar el recurso completo en la solicitud, incluso si solo se cambia una parte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el recurso no existe, PUT suele crearlo (aunque este comportamiento puede variar).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las solicitudes PUT repetidas con los mismos datos siempre dan como resultado el mismo estado del recurso.<br>Ejemplo: actualizar perfil de usuario:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">json<\/div><div class=\"cm-line\">PUT \/users\/123<\/div><div class=\"cm-line\">{<\/div><div class=\"cm-line\">&quot;name&quot;: &quot;Velislav&quot;,<\/div><div class=\"cm-line\">&quot;email&quot;: &quot;velislav@example.com&quot;,<\/div><div class=\"cm-line\">&quot;age&quot;: 30<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>Si solo cambia el nombre, pero el correo electr\u00f3nico y la edad siguen siendo los mismos, a\u00fan deben estar presentes en la solicitud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PARCHES:<br>Actualizaci\u00f3n parcial:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PATCH se utiliza para actualizar parcialmente un recurso existente.<br>S\u00f3lo los campos que cambian se env\u00edan en la solicitud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Idempotente (principalmente):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que PUT, las solicitudes PATCH repetidas con los mismos datos generalmente dan como resultado el mismo estado de recurso.<br>Sin embargo, el comportamiento puede depender de la implementaci\u00f3n del servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo: actualizar solo nombre de usuario:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">json<\/div><div class=\"cm-line\">PATCH \/users\/123<\/div><div class=\"cm-line\">{<\/div><div class=\"cm-line\">&quot;name&quot;: &quot;Velislav&quot;<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>Aqu\u00ed, solo se actualiza el campo de nombre y los dem\u00e1s campos permanecen sin cambios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diferencia principal:<br>PUT reemplaza todo el recurso, mientras que PATCH cambia solo los campos especificados del recurso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>M\u00e9todos HTTP con una breve descripci\u00f3n.<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GET: Se utiliza para recuperar datos del servidor sin modificarlos. A menudo se utiliza para buscar recursos o informaci\u00f3n.<br>POST: Se utiliza para enviar datos al servidor, generalmente para crear un nuevo recurso. Por ejemplo, al enviar un formulario o cargar un archivo.<br>PUT: Se utiliza para actualizar o reemplazar completamente un recurso existente en el servidor. Si el recurso no existe, se puede crear.<br>PATCH: Se utiliza para una actualizaci\u00f3n parcial de un recurso existente, modificando solo los campos especificados.<br>ELIMINAR: Se utiliza para eliminar un recurso del servidor.<br>HEAD: Similar a GET, se utiliza para recuperar solo los encabezados sin el cuerpo del recurso.<br>OPCIONES: Muestra qu\u00e9 m\u00e9todos HTTP est\u00e1n permitidos.<br>TRACE: Se utiliza principalmente con fines de diagn\u00f3stico al hacer eco de la solicitud al cliente.<br>CONNECT: Establece un t\u00fanel hacia el servidor, a menudo utilizado para conexiones SSL\/TLS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Interfaz funcional<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una interfaz funcional en Java es una interfaz que contiene exactamente un m\u00e9todo abstracto. Estas interfaces se utilizan principalmente con expresiones lambda y referencias de m\u00e9todos, lo que permite un estilo de programaci\u00f3n funcional m\u00e1s breve y legible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Caracter\u00edsticas principales:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>M\u00e9todo abstracto \u00fanico<\/strong>: La interfaz funcional tiene un solo m\u00e9todo abstracto. \u00c9sta es la esencia de su funcionalidad.<\/li>\n\n\n\n<li><strong>M\u00e9todos predeterminados y est\u00e1ticos<\/strong>: Las interfaces funcionales pueden contener m\u00e9todos predeterminados y est\u00e1ticos, pero no cuentan como el \u00fanico m\u00e9todo abstracto.<\/li>\n\n\n\n<li><strong>Anotaci\u00f3n @FunctionalInterface<\/strong>: Si bien esta anotaci\u00f3n es opcional, ayuda a indicar que la interfaz proporcionada est\u00e1 destinada a ser funcional. Si se agregan m\u00e9todos abstractos adicionales a la interfaz, el compilador arroja un error.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-mathematica\"><div class=\"cm-line\"><span class=\"tok-operator\">@<\/span><span class=\"tok-keyword\">FunctionalInterface<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">interface<\/span> <span class=\"tok-keyword\">Calculator<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">int<\/span> <span class=\"tok-keyword\">calculate<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">int<\/span> <span class=\"tok-keyword\">a<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">int<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-punctuation\">)<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\"><span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Using<\/span> <span class=\"tok-keyword\">lambda<\/span> <span class=\"tok-keyword\">expression<\/span><\/div><div class=\"cm-line\"><span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">class<\/span> <span class=\"tok-keyword\">Main<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-keyword\">public<\/span> <span class=\"tok-keyword\">static<\/span> <span class=\"tok-keyword\">void<\/span> <span class=\"tok-keyword\">main<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">String<\/span><span class=\"tok-punctuation\">[]<\/span> <span class=\"tok-keyword\">args<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-punctuation\">{<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-keyword\">Implementing<\/span> <span class=\"tok-keyword\">the<\/span> <span class=\"tok-keyword\">calculate<\/span> <span class=\"tok-keyword\">method<\/span> <span class=\"tok-keyword\">using<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-keyword\">lambda<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">Calculator<\/span> <span class=\"tok-keyword\">addition<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">a<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-operator\">-&gt;<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-operator\">+<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">Calculator<\/span> <span class=\"tok-keyword\">multiplication<\/span> <span class=\"tok-operator\">=<\/span> <span class=\"tok-punctuation\">(<\/span><span class=\"tok-keyword\">a<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-punctuation\">)<\/span> <span class=\"tok-operator\">-&gt;<\/span> <span class=\"tok-keyword\">a<\/span> <span class=\"tok-operator\">*<\/span> <span class=\"tok-keyword\">b<\/span><span class=\"tok-operator\">;<\/span><\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Addition: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">addition<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">calculate<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-number\">5<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-number\">3<\/span><span class=\"tok-punctuation\">))<\/span><span class=\"tok-operator\">;<\/span>  <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-variableName2\">Output: 8<\/span><\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">System<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">out<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">println<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-string\">&quot;Multiplication: &quot;<\/span> <span class=\"tok-operator\">+<\/span> <\/div><div class=\"cm-line\">        <span class=\"tok-keyword\">multiplication<\/span><span class=\"tok-operator\">.<\/span><span class=\"tok-keyword\">calculate<\/span><span class=\"tok-punctuation\">(<\/span><span class=\"tok-number\">5<\/span><span class=\"tok-operator\">,<\/span> <span class=\"tok-number\">3<\/span><span class=\"tok-punctuation\">))<\/span><span class=\"tok-operator\">;<\/span>  <span class=\"tok-operator\">\/\/<\/span> <span class=\"tok-variableName2\">Output: 15<\/span><\/div><div class=\"cm-line\">    <span class=\"tok-punctuation\">}<\/span><\/div><div class=\"cm-line\"><span class=\"tok-punctuation\">}<\/span><\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Caso de uso:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">la interfaz <code>Calculator<\/code> en el ejemplo solo hay un m\u00e9todo abstracto <code>calculate<\/code>, lo que la convierte en una interfaz funcional.<br>Esto nos permite utilizar expresiones lambda para una implementaci\u00f3n m\u00e1s corta y elegante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Interfaces funcionales com\u00fanmente utilizadas en Java:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Java proporciona varias interfaces funcionales integradas en el paquete. <code>java.util.function<\/code>, como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Predicado<\/strong>: Acepta una entrada y devuelve un valor booleano.<\/li>\n\n\n\n<li><strong>Funci\u00f3n<\/strong>: toma una entrada y devuelve un resultado de tipo R.<\/li>\n\n\n\n<li><strong>Proveedor<\/strong>: proporciona un valor sin entrada.<\/li>\n\n\n\n<li><strong>Consumidor<\/strong>: Toma un valor y realiza una acci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Las interfaces funcionales facilitan el trabajo, especialmente en escenarios como trabajar con colecciones, transmisiones o tareas asincr\u00f3nicas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Permiten que Java adopte paradigmas de programaci\u00f3n funcional manteniendo su car\u00e1cter orientado a objetos.<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es una funci\u00f3n de orden superior?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una funci\u00f3n de orden superior es una funci\u00f3n que acepta otras funciones como argumentos o devuelve una funci\u00f3n como resultado. En otras palabras, opera con funciones, trat\u00e1ndolas como &#8220;ciudadanos de primera&#8221;. Esta es una caracter\u00edstica poderosa en los paradigmas de programaci\u00f3n funcional que permite la abstracci\u00f3n, la reutilizaci\u00f3n y la composici\u00f3n del c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo de funci\u00f3n de orden superior en Java:<\/h3>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-html\"><div class=\"cm-line\">import java.util.function.Function;<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">public class Main {<\/div><div class=\"cm-line\">    public static void main(String[] args) {<\/div><div class=\"cm-line\">        \/\/ Higher-order function: applies a function to a value<\/div><div class=\"cm-line\">        Function<span class=\"tok-punctuation\">&lt;<\/span><span class=\"tok-typeName\">Integer<\/span><span class=\"tok-propertyName\">,<\/span> <span class=\"tok-propertyName\">Integer<\/span><span class=\"tok-punctuation\">&gt;<\/span> squareFunction = x -&gt; x * x;<\/div><div class=\"cm-line\">        int result = applyFunction(5, squareFunction);<\/div><div class=\"cm-line\">        System.out.println(&quot;Square of 5: &quot; + result);  <\/div><div class=\"cm-line\">          \/\/ Output: 25<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\"><\/div><div class=\"cm-line\">    public static int applyFunction(int value, <\/div><div class=\"cm-line\">    Function<span class=\"tok-punctuation\">&lt;<\/span><span class=\"tok-typeName\">Integer<\/span><span class=\"tok-propertyName\">,<\/span> <span class=\"tok-propertyName\">Integer<\/span><span class=\"tok-punctuation\">&gt;<\/span> function) {<\/div><div class=\"cm-line\">        return function.apply(value);<\/div><div class=\"cm-line\">    }<\/div><div class=\"cm-line\">}<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En el ejemplo anterior:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>el metodo <code>applyFunction<\/code> es una funci\u00f3n de orden superior porque acepta otra funci\u00f3n (<code>Function&lt;Integer, Integer&gt;<\/code>) como par\u00e1metro.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Caracter\u00edsticas:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Acepta funciones como argumentos<\/strong>: Las funciones de orden superior pueden tomar otras funciones como entrada para realizar operaciones espec\u00edficas.<\/li>\n\n\n\n<li><strong>Funciones de devoluciones<\/strong>: Pueden generar y devolver din\u00e1micamente nuevas funciones.<\/li>\n\n\n\n<li><strong>Fomenta la reutilizaci\u00f3n del c\u00f3digo<\/strong>: Promueve el c\u00f3digo modular y reutilizable, ya que las funciones se pueden pasar y combinar entre s\u00ed.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Caso de uso:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Java, las funciones de orden superior se utilizan a menudo en la programaci\u00f3n funcional con secuencias, lambdas y referencias de m\u00e9todos. Por ejemplo:<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code class=\"language-html\"><div class=\"cm-line\">List<span class=\"tok-punctuation\">&lt;<\/span><span class=\"tok-typeName\">String<\/span><span class=\"tok-punctuation\">&gt;<\/span> names = Arrays.asList(&quot;John&quot;, &quot;Jane&quot;, &quot;Jake&quot;);<\/div><div class=\"cm-line\">names.stream()<\/div><div class=\"cm-line\">     .filter(name -&gt; name.startsWith(&quot;J&quot;))  <\/div><div class=\"cm-line\">     \/\/ Takes a lambda function as argument<\/div><div class=\"cm-line\">     .forEach(System.out::println);         <\/div><div class=\"cm-line\">  \/\/ Takes a method reference as argument<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Las funciones de orden superior a\u00f1aden flexibilidad y potencia a los programas Java, permitiendo a los desarrolladores escribir c\u00f3digo limpio, conciso y expresivo.<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Algunos ejemplos reales con respuestas de entrevistas.<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comprende los conceptos b\u00e1sicos como polimorfismo, m\u00e9todos est\u00e1ticos y grupo de cadenas.<\/li>\n\n\n\n<li>Familiarizado con las colecciones (por ejemplo, HashSet, TreeSet) y sus casos de uso.<\/li>\n\n\n\n<li>Identificar correctamente los alcances de los beans (singleton, prototipo)<\/li>\n\n\n\n<li>Entiende qu\u00e9 es la inyecci\u00f3n de dependencia y su finalidad.<\/li>\n\n\n\n<li>Sabe c\u00f3mo implementar relaciones de muchos a muchos utilizando tablas de uni\u00f3n.<\/li>\n\n\n\n<li>Entiende el prop\u00f3sito de los \u00edndices (aunque superficialmente)<\/li>\n\n\n\n<li>Puede distinguir entre arquitecturas monol\u00edticas y de microservicios.<\/li>\n\n\n\n<li>Entiende las compensaciones b\u00e1sicas (escalabilidad, mantenibilidad)<\/li>\n\n\n\n<li>No comprende adecuadamente el principio de sustituci\u00f3n de Liskov y la inversi\u00f3n de dependencia.<\/li>\n\n\n\n<li>Es dif\u00edcil dar ejemplos concretos del principio abierto\/cerrado.<\/li>\n\n\n\n<li>No hay conocimientos profundos sobre la gesti\u00f3n del ciclo de vida de los beans.<\/li>\n\n\n\n<li>No comprende la inyecci\u00f3n avanzada de dependencia.<\/li>\n\n\n\n<li>Tiene un conocimiento superficial de los \u00edndices (\u00edndices compuestos, optimizaci\u00f3n de consultas).<\/li>\n\n\n\n<li>No estoy familiarizado con los niveles de aislamiento y el bloqueo optimista\/pesimista.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ventajas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Trabaj\u00e9 con c\u00f3digo heredado en un sistema grande y complejo.<\/li>\n\n\n\n<li>Est\u00e1 familiarizado con SOLID.<\/li>\n\n\n\n<li>Tiene conocimiento de arroyos.<\/li>\n\n\n\n<li>Explicar \u00edndices y ACID.<\/li>\n\n\n\n<li>Buen nivel de ingles<br>Contras:<\/li>\n\n\n\n<li>No hay responsabilidad por el despliegue o la infraestructura, participaci\u00f3n en el dise\u00f1o de la arquitectura.<\/li>\n\n\n\n<li>Tiene cierto conocimiento de los principios de la programaci\u00f3n orientada a objetos, pero ha tenido serias dificultades para explicarlos y ha confundido algunos conceptos.<\/li>\n\n\n\n<li>Conocimiento general de colecciones, pero con lagunas y bastante incierto.<\/li>\n\n\n\n<li>No comprende la diferencia entre concurrencia y paralelismo, no tiene un conocimiento particularmente s\u00f3lido de concurrencia.<\/li>\n\n\n\n<li>No ha analizado en detalle la arquitectura de microservicios.<\/li>\n\n\n\n<li>Ambig\u00fcedad en algunos conceptos de bases de datos (la discusi\u00f3n sobre \u00edndices fue superficial).<\/li>\n\n\n\n<li>No se pudo explicar el bloqueo en vivo.<\/li>\n\n\n\n<li>Hay lagunas en la comprensi\u00f3n del bloque final.<\/li>\n\n\n\n<li>Conocimiento limitado de los detalles del manejo de excepciones.<\/li>\n\n\n\n<li>Confundido con modificadores de acceso (protegido versus paquete privado)<br>La opini\u00f3n general es que<br>no es adecuado para el puesto de desarrollador Mid-Java debido a las lagunas en sus conocimientos t\u00e9cnicos.<\/li>\n\n\n\n<li>Bien explicado S\u00d3LIDO.<\/li>\n\n\n\n<li>Explic\u00f3 bien la programaci\u00f3n orientada a objetos.<\/li>\n\n\n\n<li>Composici\u00f3n explicada (pero al principio fue un poco dif\u00edcil).<\/li>\n\n\n\n<li>Excelente conocimiento de las colecciones.<\/li>\n\n\n\n<li>Explica la diferencia entre listas y conjuntos.<\/li>\n\n\n\n<li>Discuta HashSet.<\/li>\n\n\n\n<li>Discuta HashMap.<\/li>\n\n\n\n<li>Analice ConcurrentHashMap.<\/li>\n\n\n\n<li>Buen conocimiento de las estructuras de datos: pilas, colas, \u00e1rboles.<\/li>\n\n\n\n<li>Buen conocimiento de la arquitectura JVM.<\/li>\n\n\n\n<li>Explic\u00f3 bien la concurrencia frente al paralelismo y demostr\u00f3 un buen conocimiento de las aplicaciones multiproceso.<\/li>\n\n\n\n<li>Buen conocimiento de REST.<\/li>\n\n\n\n<li>\u00cdndices de base de datos bien explicados.<\/li>\n\n\n\n<li>Explicar los diferentes tipos de uniones.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Preguntas e informaci\u00f3n sobre la preparaci\u00f3n de la entrevista para desarrolladores de Java \u00bfQuales son los principios S\u00d3LIDOS? \u00bfQu\u00e9 es el Principio de Responsabilidad \u00danica (PRS)? Una clase debe tener solo una responsabilidad y una sola raz\u00f3n para cambiar. Los beneficios incluyen pruebas m\u00e1s sincillas, menor acopliamiento y mejor organizaci\u00f3n. Ejemplo: \u00bfQu\u00e9 es el principio abierto-cerrado (OCP)? [&hellip;]<\/p>\n","protected":false},"author":65283547,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1017],"tags":[11788,789678139,2549795,196,789678143],"class_list":["post-2308","post","type-post","status-publish","format-standard","hentry","category-java","tag-interview","tag-interview-java-developer","tag-java-2","tag-programming","tag-questions-java-developer"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4CoHV-Be","jetpack-related-posts":[{"id":2350,"url":"https:\/\/vkrastev1blog.com\/2026\/09\/01\/%d0%b2-youtube-%d0%bc%d0%be%d0%b6%d0%b5%d1%82%d0%b5-%d0%b4%d0%b0-%d0%bd%d0%b0%d0%bc%d0%b5%d1%80%d0%b8%d1%82%d0%b5-%d0%b2%d0%b5%d1%87%d0%b5-%d0%bc%d0%be%d0%b8-%d1%85%d1%80%d0%b8%d1%81%d1%82%d0%b8%d1%8f\/","url_meta":{"origin":2308,"position":0},"title":"Ya puedes encontrar mis canciones cristianas en YouTube","author":"vkrastev2014","date":"01.09.2026","format":false,"excerpt":"\u0412 YouTube \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043d\u0430\u043c\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0447\u0435 \u043c\u043e\u0438 \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u043f\u0435\u0441\u043d\u0438 \u0438 \u0438\u043d\u0441\u0442\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u0438 \u0438 \u0432\u0438\u0434\u0435\u043e\u0442\u0430 \u043d\u0430 \u043f\u0435\u0441\u043d\u0438\u0442\u0435 \u0417\u0434\u0440\u0430\u0432\u0435\u0439\u0442\u0435, \u043f\u0440\u043e\u0434\u0443\u0446\u0438\u0440\u0430\u043c \u0425\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u043a\u0438 \u043f\u0435\u0441\u043d\u0438. \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043c \u0433\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u0430 \u043d\u0430 \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d \u0438\u043d\u0442\u0435\u043b\u0435\u043a\u0442 \u0438 \u0438\u043c\u0430\u043c \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438 \u043f\u0440\u0430\u0432\u0430. \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435\u0442\u0435 \u0441\u0430 \u043c\u043e\u0435 \u0434\u0435\u043b\u043e. \u0421\u0442\u0438\u043b\u0430 \u043d\u0430 \u043c\u0443\u0437\u0438\u043a\u0430\u0442\u0430 \u0441\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f \u0441\u044a\u0449\u043e \u043e\u0442 \u043c\u0435\u043d\u0435. \u0429\u0435 \u0441\u0435 \u0440\u0430\u0434\u0432\u0430\u043c \u043d\u0430 \u0432\u0430\u0448\u0438\u0442\u0435 \u043e\u0442\u0437\u0438\u0432\u0438 \u0438\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/09\/image.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1655,"url":"https:\/\/vkrastev1blog.com\/2025\/01\/22\/%d1%81%d1%83%d0%b3%d0%b5%d1%81%d1%82%d0%be%d0%bf%d0%b5%d0%b4%d0%b8%d1%8f-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b7%d0%b0-%d1%81%d0%ba%d0%be%d1%80%d0%be%d1%81%d1%82%d0%bd%d0%be-%d1%83%d1%87%d0%b5%d0%bd\/","url_meta":{"origin":2308,"position":1},"title":"Sugestopedia: M\u00e9todo para el aprendizaje r\u00e1pido de lenguas extranjeras, desarrollado por Georgi Lozanov.","author":"vkrastev2014","date":"22.01.2025","format":false,"excerpt":"\u0421\u0443\u0433\u0435\u0441\u0442\u043e\u043f\u0435\u0434\u0438\u044f: \u041c\u0435\u0442\u043e\u0434 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e \u0443\u0447\u0435\u043d\u0435 \u043d\u0430 \u0447\u0443\u0436\u0434\u0438 \u0435\u0437\u0438\u0446\u0438, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0435\u043d \u043e\u0442 \u0413\u0435\u043e\u0440\u0433\u0438 \u041b\u043e\u0437\u0430\u043d\u043e\u0432 \u041d\u0430\u0443\u0447\u043d\u043e-\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430 \u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u044f | \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043d\u0430\u0443\u0447\u0435\u043d \u043f\u0440\u0438\u043d\u043e\u0441 \u043a\u044a\u043c \u0441\u0432\u0435\u0442\u043e\u0432\u043d\u0430\u0442\u0430 \u043f\u0435\u0434\u0430\u0433\u043e\u0433\u0438\u043a\u0430 \u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0435 \u0447\u043e\u0432\u0435\u043a \u0434\u0430 \u043d\u0430\u0443\u0447\u0438 \u0447\u0443\u0436\u0434 \u0435\u0437\u0438\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u043f\u043e-\u0431\u044a\u0440\u0437\u043e, \u0431\u0435\u0437 \u0434\u0430 \u0438\u0437\u043f\u0438\u0442\u0432\u0430 \u043e\u0431\u0438\u0447\u0430\u0439\u043d\u043e\u0442\u043e \u043d\u0430\u043f\u0440\u0435\u0436\u0435\u043d\u0438\u0435, \u0443\u043c\u043e\u0440\u0430 \u0438 \u0441\u0442\u0440\u0430\u0445 \u043e\u0442 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0438? \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/01\/%D0%9F%D1%80%D0%BE%D1%84.-%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8-%D0%9B%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2_-%D0%98%D0%B7%D0%BA%D1%83%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%83%D1%87%D0%B5%D0%BD%D0%B5.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2537,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d1%82%d1%80%d0%b5%d1%82%d0%b8%d1%8f%d1%82-%d0%b2%d1%81%d0%b5%d0%bb%d0%b5%d0%bd%d1%81%d0%ba%d0%b8-%d1%81%d1%8a%d0%b1%d0%be%d1%80-%d0%b2-%d0%b5%d1%84%d0%b5%d1%81-431-%d0%b3-%d1%85%d1%80%d0%b8%d1%81\/","url_meta":{"origin":2308,"position":2},"title":"El Tercer Concilio Ecum\u00e9nico de \u00c9feso (431): la disputa cristol\u00f3gica entre Cirilo de Alejandr\u00eda y Nestorio y la afirmaci\u00f3n de la doctrina de la Madre de Dios","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440 \u0432 \u0415\u0444\u0435\u0441 (431 \u0433.): \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0438\u044f\u0442 \u0441\u043f\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u041a\u0438\u0440\u0438\u043b \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0438\u0439\u0441\u043a\u0438 \u0438 \u041d\u0435\u0441\u0442\u043e\u0440\u0438\u0439 \u0438 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0438\u0446\u0430 \u041d\u0430\u0443\u0447\u043d\u043e-\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e \u0438 \u0431\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u0441\u043a\u043e \u0438\u0437\u0441\u043b\u0435\u0434\u0432\u0430\u043d\u0435 \u0410\u0432\u0442\u043e\u0440: \u0412\u0435\u043b\u0438\u0441\u043b\u0430\u0432 \u041a\u0440\u044a\u0441\u0442\u0435\u0432\u0422\u0435\u043c\u0430: \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0440\u0430\u043d\u043d\u0430\u0442\u0430 \u0426\u044a\u0440\u043a\u0432\u0430 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u0442\u0430 \u0434\u043e\u0433\u043c\u0430\u0442\u0438\u043a\u0430\u041f\u0435\u0440\u0438\u043e\u0434: 428\u2013451 \u0433.\u041e\u0441\u043d\u043e\u0432\u043d\u043e \u0441\u044a\u0431\u0438\u0442\u0438\u0435: \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u0415\u0444\u0435\u0441, 431 \u0433. \u0420\u0435\u0437\u044e\u043c\u0435 \u0422\u0440\u0435\u0442\u0438\u044f\u0442 \u0432\u0441\u0435\u043b\u0435\u043d\u0441\u043a\u0438 \u0441\u044a\u0431\u043e\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/chatgpt-image-oct-2-2026-08_12_12-pm.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":901,"url":"https:\/\/vkrastev1blog.com\/2024\/11\/17\/%d0%ba%d0%be%d0%bb%d0%ba%d0%be-%d0%bf%d1%80%d0%be%d1%82%d0%b5%d0%b8%d0%bd%d0%b8-%d0%b4%d0%b0-%d0%bf%d1%80%d0%b8%d0%b5%d0%bc%d0%b0%d0%bc%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%b5%d0%bd\/","url_meta":{"origin":2308,"position":3},"title":"Cu\u00e1nta prote\u00edna comer al d\u00eda y los efectos de la falta de prote\u00ednas","author":"vkrastev2014","date":"17.11.2024","format":false,"excerpt":"\u041a\u043e\u043b\u043a\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u0434\u0430 \u043f\u0440\u0438\u0435\u043c\u0430\u043c\u0435 \u043d\u0430 \u0434\u0435\u043d \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0438\u0446\u0438\u0442\u0435 \u043e\u0442 \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u043e\u0432 \u0433\u043b\u0430\u0434 \u041f\u0440\u0438\u0435\u043c\u044a\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0438\u043d\u0438 \u043d\u0430 \u0434\u0435\u043d \u0435 \u043e\u0442 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e\u0440\u0430\u0434\u0438 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0438: \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0438 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438: \u041f\u0440\u043e\u0442\u0435\u0438\u043d\u0438\u0442\u0435 \u0441\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u0442\u0435 \u0433\u0440\u0430\u0434\u0438\u0432\u043d\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438 \u043d\u0430 \u043c\u0443\u0441\u043a\u0443\u043b\u0438\u0442\u0435, \u043a\u043e\u0436\u0430\u0442\u0430, \u043a\u043e\u0441\u0430\u0442\u0430 \u0438 \u043d\u043e\u043a\u0442\u0438\u0442\u0435. \u0422\u0435 \u0441\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438 \u0437\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u044a\u043a\u0430\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2024\/11\/image-17.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2222,"url":"https:\/\/vkrastev1blog.com\/2025\/04\/19\/%d1%8f%d0%bc%d0%b0-%d0%bd%d0%b8%d1%8f%d0%bc%d0%b0-%d0%b5%d1%82%d0%b8%d1%87%d0%b5%d0%bd-%d0%ba%d0%be%d0%b4%d0%b5%d0%ba%d1%81-%d0%b7%d0%b0-%d0%b6%d0%b8%d0%b2%d0%be%d1%82-%d0%b2-%d0%b9%d0%be%d0%b3\/","url_meta":{"origin":2308,"position":4},"title":"Yama, Niyama: un c\u00f3digo de \u00e9tica para la vida del yoga","author":"vkrastev2014","date":"19.04.2025","format":false,"excerpt":"\u0419\u041e\u0413\u0410 \u0424\u0418\u041b\u041e\u0421\u041e\u0424\u0418\u042f\u0422\u0410 \u0418 \u0411\u0418\u0411\u041b\u0418\u042f\u0422\u0410 \u2013 \u0421\u042a\u0412\u041f\u0410\u0414\u0415\u041d\u0418\u042f, \u0420\u0410\u0417\u041b\u0418\u0427\u0418\u042f \u0418 \u0412\u042a\u0417\u041c\u041e\u0416\u041d\u041e \u041b\u0418 \u0415 \u0415\u0414\u041d\u0410\u0422\u0410 \u0414\u0410 \u0415 \u0412\u0417\u0410\u0418\u041c\u0421\u0422\u0412\u0410\u041b\u0410 \u041e\u0422 \u0414\u0420\u0423\u0413\u0410\u0422\u0410 \u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u2013 \u0415\u0434\u043d\u0430 \u043c\u043e\u0440\u0430\u043b\u043d\u0430 \u0438\u0441\u0442\u0438\u043d\u0430, \u043d\u043e \u0435\u0434\u0438\u043d \u0438 \u0441\u044a\u0449 \u0434\u0443\u0445\u043e\u0432\u0435\u043d \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u043a \u043b\u0438 \u0441\u0442\u043e\u0438 \u0437\u0430\u0434 \u043d\u0435\u044f? \u041a\u043e\u0433\u0430\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0442\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438 \u043d\u0430 \u0439\u043e\u0433\u0430 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f\u0442\u0430 \u0441 \u0443\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0411\u0438\u0431\u043b\u0438\u044f\u0442\u0430, \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043c\u0435 \u0438\u0437\u043d\u0435\u043d\u0430\u0434\u0432\u0430\u0449\u043e \u043c\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430. \u041d\u0435\u043d\u0430\u0441\u0438\u043b\u0438\u0435\u0442\u043e, \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0442\u0430, \u043e\u0442\u043a\u0430\u0437\u044a\u0442\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/04\/viber_image_2025-04-19_23-13-17-352.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/04\/viber_image_2025-04-19_23-13-17-352.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/04\/viber_image_2025-04-19_23-13-17-352.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/04\/viber_image_2025-04-19_23-13-17-352.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2025\/04\/viber_image_2025-04-19_23-13-17-352.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":2586,"url":"https:\/\/vkrastev1blog.com\/2026\/10\/02\/%d0%b2%d0%b5%d0%bb%d0%b8%d0%ba%d0%b0%d1%82%d0%b0-%d1%81%d1%85%d0%b8%d0%b7%d0%bc%d0%b0-%d0%be%d1%82-1054-%d0%b3-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5\/","url_meta":{"origin":2308,"position":5},"title":"El Gran Cisma de 1054: las razones hist\u00f3ricas de la divisi\u00f3n entre las Iglesias ortodoxa y cat\u00f3lica romana","author":"vkrastev2014","date":"02.10.2026","format":false,"excerpt":"\u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0442\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0437\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u041f\u0440\u0430\u0432\u043e\u0441\u043b\u0430\u0432\u043d\u0430\u0442\u0430 \u0438 \u0420\u0438\u043c\u043e\u043a\u0430\u0442\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u0420\u0435\u0437\u044e\u043c\u0435 \u0412\u0435\u043b\u0438\u043a\u0430\u0442\u0430 \u0441\u0445\u0438\u0437\u043c\u0430 \u043e\u0442 1054 \u0433. \u0435 \u0435\u0434\u043d\u043e \u043e\u0442 \u043d\u0430\u0439-\u0437\u043d\u0430\u0447\u0438\u043c\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u0445\u0440\u0438\u0441\u0442\u0438\u044f\u043d\u0441\u0442\u0432\u043e\u0442\u043e. \u0422\u044f \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430 \u0441 \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0446\u044a\u0440\u043a\u043e\u0432\u043d\u043e\u0442\u043e \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0420\u0438\u043c\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0417\u0430\u043f\u0430\u0434 \u0438 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u043f\u043e\u043b\u0441\u043a\u0430\u0442\u0430 \u0446\u044a\u0440\u043a\u0432\u0430 \u043d\u0430 \u0418\u0437\u0442\u043e\u043a. \u0421\u044a\u0431\u0438\u0442\u0438\u044f\u0442\u0430\u2026","rel":"","context":"In &quot;Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.&quot;","block_context":{"text":"Art\u00edculos dedicados a la Biblia y sobre el esp\u00edritu y el cuerpo.","link":"https:\/\/vkrastev1blog.com\/category\/%d1%81%d1%82%d0%b0%d1%82%d0%b8%d0%b8-%d0%bf%d0%be%d1%81%d0%b2%d0%b5%d1%82%d0%b5%d0%bd%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d1%8f%d1%82%d0%b0-%d0%b8-%d0%b7%d0%b0-%d0%b4%d1%83%d1%85%d0%b0\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/vkrastev1blog.com\/wp-content\/uploads\/2026\/10\/qw2qge1gpm-imcejrbliuv09vw-lm2pdjcnyrstfpg4msbjvq5ayy300dumb4g0dqgb04qse4r49kf4hgozsmknaycx-6ls4n1_6et7huoj0n4ovamyps8jiqzamtvq9qa1jdrc-ci-cw5e8oylvd1jxmveqgxdxbfu8ds4uwz8.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/users\/65283547"}],"replies":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":94,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions"}],"predecessor-version":[{"id":3259,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/2308\/revisions\/3259"}],"wp:attachment":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/categories?post=2308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/tags?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}