From 00f8cd20d819c7f4fc5f2add4012e7e62922d44f Mon Sep 17 00:00:00 2001 From: Yennifer Herrera Date: Wed, 25 Oct 2023 12:46:21 -0500 Subject: [PATCH] translation: Translates Layers Pattern to Spanish (#2700) * ADD: Spanish translation for Layers pattern * UPD: Minor formatting fix for layers pattern --- layers/README.md | 3 +- localization/es/layers/README.md | 96 ++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 localization/es/layers/README.md diff --git a/layers/README.md b/layers/README.md index 5f41ede03..c57307eed 100644 --- a/layers/README.md +++ b/layers/README.md @@ -28,6 +28,7 @@ Wikipedia says > In software engineering, multitier architecture (often referred to as n-tier architecture) or > multilayered architecture is a client–server architecture in which presentation, application > processing, and data management functions are physically separated. + **Programmatic Example** On the data layer, we keep our cake building blocks. `Cake` consist of layers and topping. @@ -90,4 +91,4 @@ Use the Layers architecture when ## Credits -* [Pattern Oriented Software Architecture Volume 1: A System of Patterns](https://www.amazon.com/gp/product/0471958697/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0471958697&linkCode=as2&tag=javadesignpat-20&linkId=e3f42d7a2a4cc8c619bbc0136b20dadb) \ No newline at end of file +* [Pattern Oriented Software Architecture Volume 1: A System of Patterns](https://www.amazon.com/gp/product/0471958697/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0471958697&linkCode=as2&tag=javadesignpat-20&linkId=e3f42d7a2a4cc8c619bbc0136b20dadb) diff --git a/localization/es/layers/README.md b/localization/es/layers/README.md new file mode 100644 index 000000000..ca01f2dd4 --- /dev/null +++ b/localization/es/layers/README.md @@ -0,0 +1,96 @@ +--- +title: Layers +category: Architectural +language: es +tag: +- Decoupling +--- + +## Propósito + +Capas (*Layers* en inglés) es un patrón arquitectónico donde las responsabilidades del software se dividen entre diferentes +capas de la aplicación. + +## Explicación + +Ejemplo del mundo real + +> Considere un sitio web que muestra pasteles decorados para bodas y similares. En lugar de que la página web +> acceda directamente a la base de datos, depende de un servicio para entregar esta información. Luego, el +> servicio consulta la capa de datos para recopilar la información necesaria. + +En otras palabras + +> Con el patrón arquitectónico de Capas, diferentes responsabilidades residen en capas separadas. La capa de vista solo +> está interesada en la renderización, la capa de servicio ensambla los datos solicitados de varias fuentes, y +> la capa de datos obtiene la información del almacenamiento de datos. + +Wikipedia dice + +> En ingeniería de software, la arquitectura multitier (a menudo referida como arquitectura n-tier) o +> arquitectura multicapa es una arquitectura cliente-servidor en la que las funciones de presentación, procesamiento de aplicaciones +> y gestión de datos están físicamente separadas. + +**Ejemplo programático** + +En la capa de datos, guardamos nuestros elementos básicos. `Cake` consta de capas (*layers*) y cobertura (*topping*). + +```java +@Entity +public class Cake { + @Id + @GeneratedValue + private Long id; + @OneToOne(cascade = CascadeType.REMOVE) + private CakeTopping topping; + @OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER) + private Set layers; +} +``` + +La capa de servicio ofrece `CakeBakingService` para un fácil acceso a diferentes aspectos de los pasteles. + +```java +public interface CakeBakingService { + void bakeNewCake(CakeInfo cakeInfo) throws CakeBakingException; + List getAllCakes(); + void saveNewTopping(CakeToppingInfo toppingInfo); + List getAvailableToppings(); + void saveNewLayer(CakeLayerInfo layerInfo); + List getAvailableLayers(); +} +``` + +En la parte superior tenemos nuestra `View`, responsable de renderizar los pasteles. + +```java +public interface View { + void render(); +} +@Slf4j +public class CakeViewImpl implements View { + private final CakeBakingService cakeBakingService; + public CakeViewImpl(CakeBakingService cakeBakingService) { + this.cakeBakingService = cakeBakingService; + } + public void render() { + cakeBakingService.getAllCakes().forEach(cake -> LOGGER.info(cake.toString())); + } +} +``` + +## Diagrama de clases + +![alt text](../../../layers/etc/layers.png "Layers") + +## Aplicabilidad + +Utilice la arquitectura de Capas cuando: + +* Quiera dividir claramente las responsabilidades del software en diferentes partes del programa. +* Quiera evitar que un cambio se propague a lo largo de la aplicación. +* Quiera hacer su aplicación más mantenible y testeable. + +## Créditos + +* [Pattern Oriented Software Architecture Volume 1: A System of Patterns](https://www.amazon.com/gp/product/0471958697/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0471958697&linkCode=as2&tag=javadesignpat-20&linkId=e3f42d7a2a4cc8c619bbc0136b20dadb)