paint-brush
¿Qué es un patrón de diseño de fachada?por@ssukhpinder
599 lecturas
599 lecturas

¿Qué es un patrón de diseño de fachada?

por Sukhpinder Singh4m2023/02/28
Read on Terminal Reader

Demasiado Largo; Para Leer

Un patrón de diseño de fachada proporciona un único punto de entrada a un subsistema, ocultando su complejidad al cliente. En nuestro ejemplo, podemos crear una fachada que proporcione una interfaz unificada para los subsistemas de inventario, pago y envío. El artículo demuestra los patrones de diseño de Facade usando el lenguaje de programación C#.
featured image - ¿Qué es un patrón de diseño de fachada?
Sukhpinder Singh HackerNoon profile picture
0-item

A medida que las aplicaciones crecen en tamaño y complejidad, la gestión de la interdependencia entre los subsistemas puede convertirse en un desafío. Un patrón de diseño de fachada simplifica esta interacción y proporciona una interfaz unificada para un conjunto de interfaces en un subsistema.

Caso de uso

Considere una aplicación de compras en línea que permita a los clientes buscar productos, agregarlos a un carrito y pagar. La aplicación cuenta con diferentes subsistemas encargados de administrar otras partes, como los sistemas de inventario, pago y envío. Estos subsistemas tienen diferentes interfaces y necesitan comunicarse entre sí para completar una compra.


El problema es que administrar esta comunicación entre subsistemas puede ser difícil a medida que crece la aplicación. Los cambios en un subsistema pueden tener un efecto en cascada en otros subsistemas, lo que genera una base de código enredada y difícil de mantener.


Podemos usar el patrón de diseño de fachada para simplificar la interacción entre los subsistemas. Un patrón de fachada proporciona un único punto de entrada a un subsistema, ocultando su complejidad al cliente. En nuestro ejemplo, podemos crear una fachada que proporcione una interfaz unificada para los subsistemas de inventario, pago y envío.

requisitos previos

  • Conocimiento básico de los conceptos de OOPS.
  • Cualquier conocimiento del lenguaje de programación.

El artículo demuestra los patrones de diseño de Facade usando el lenguaje de programación C#.

Objetivos de aprendizaje

  • Cómo programar utilizando un patrón de diseño de fachada

Empezando

Comencemos definiendo las interfaces para nuestros subsistemas.

 public interface IInventorySystem { void Update(int productId, int quantity); bool IsAvailable(int productId, int quantity); } public interface IPaymentSystem { bool Charge(double amount); } public interface IShippingSystem { bool Ship(string address); }


A continuación, podemos implementar los subsistemas:

 public class InventorySystem : IInventorySystem { public void Update(int productId, int quantity) { // update inventory } public bool IsAvailable(int productId, int quantity) { // check if inventory is available return true; } } public class PaymentSystem : IPaymentSystem { public bool Charge(double amount) { // charge the customer return true; } } public class ShippingSystem : IShippingSystem { public bool Ship(string address) { // ship the product return true; } }


Finalmente, podemos crear una fachada que proporcione una interfaz simple a estos subsistemas:

 public class OrderFacade { private IInventorySystem _inventorySystem; private IPaymentSystem _paymentSystem; private IShippingSystem _shippingSystem; public OrderFacade() { _inventorySystem = new InventorySystem(); _paymentSystem = new PaymentSystem(); _shippingSystem = new ShippingSystem(); } public bool PlaceOrder(int productId, int quantity, double amount, string address) { bool success = true; if (_inventorySystem.IsAvailable(productId, quantity)) { _inventorySystem.Update(productId, -quantity); success = success && _paymentSystem.Charge(amount); success = success && _shippingSystem.Ship(address); } else { success = false; } return success; } }


En la clase OrderFacade , creamos instancias de los subsistemas y ofrecemos un método simple PlaceOrder que toma la identificación del producto, la cantidad, el monto y la dirección de envío. La técnica PlaceOrder utiliza los subsistemas para comprobar el inventario, cobrar al cliente y enviar el producto.

Con el patrón de fachada, el código del cliente puede crear una instancia de la clase OrderFacade y llamar al método PlaceOrder sin preocuparse por los detalles de los subsistemas.


 var order = new OrderFacade(); bool success; // place an order success = order.PlaceOrder(productId: 123, quantity: 1, amount: 99.99, address: "123 Main St"); if (success) { Console.WriteLine("Order placed successfully"); } else { Console.WriteLine("Unable to place order"); }


En este ejemplo, hemos utilizado el patrón de fachada para simplificar la interacción entre los subsistemas en una aplicación de compras en línea. El código del cliente solo necesita interactuar con la clase `OrderFacade` y no necesita conocer los subsistemas de inventario, pago y envío.

Conclusión

El patrón de diseño de fachada simplifica la interacción entre subsistemas y proporciona una interfaz unificada para un conjunto de interfaces en un subsistema. Puede ayudar a reducir el acoplamiento y mejorar la capacidad de mantenimiento de aplicaciones grandes y complejas. Este artículo explora el patrón de diseño de fachada en C# con un caso de uso y ejemplos de código. Usando el patrón de fachada, podemos simplificar la base de código y hacer que sea más fácil de mantener y ampliar.


Gracias por leer, y espero que les haya gustado el artículo. Por favor proporcione sus comentarios en la sección de comentarios.

Sígueme en

Publicación de C# , desarrollador. a , Pinterest , Substack , Hashnode , Write.as

Más patrones de diseño — Referencia Linkedin Learning


También publicado aquí.