Middle
Kas ir fasāde (Facade)?
sobes.tech AI
Atbilde no AI
Fasāde ir strukturāls dizaina paraugs, kas nodrošina vienotu interfeisu uz subsistēmas interfeisiem. Tas definē augstā līmeņa interfeisu, kas atvieglo subsistēmas izmantošanu, neiejaucoties tās iekšējā struktūrā.
Galvenie fasādes mērķi:
- Vienkāršošana: Slēpj sarežģītību aiz vienkāršas interfeisa.
- Samazina saistību: Klienta kods sazinās tikai ar fasādi, nevis tieši ar subsistēmas komponentiem.
- Enkapsulācija: Izmaiņas subsistēmas iekšējā struktūrā mazāk ietekmē klienta kodu, kas izmanto fasādi.
Piemērs:
Iedomāsimies sarežģītu pasūtījuma apstrādes sistēmu interneta veikalā, kas ietver inventāra, maksājumu, piegādes un paziņojumu subsistēmas. Tā vietā, lai klients zvanītu katras no šīm subsistēmām atsevišķi, var izveidot OrderProcessor fasādi.
// Bez fasādes struktūras piemērs
// Klienta kods kļūst sarežģīts
// inventorySystem.checkStock(item);
// paymentSystem.processPayment(amount);
// shippingSystem.arrangeShipping(address);
// notificationSystem.sendConfirmation(email);
// Ar fasādes struktūras piemērs
public class OrderProcessorFacade {
private InventorySystem inventorySystem;
private PaymentSystem paymentSystem;
private ShippingSystem shippingSystem;
private NotificationSystem notificationSystem;
public OrderProcessorFacade() {
this.inventorySystem = new InventorySystem();
this.paymentSystem = new PaymentSystem();
this.shippingSystem = new ShippingSystem();
this.notificationSystem = new NotificationSystem();
}
public void placeOrder(Item item, double amount, String address, String email) {
// Pārbaude
inventorySystem.checkStock(item);
// Maksājuma apstrāde
paymentSystem.processPayment(amount);
// Piegādes organizēšana
shippingSystem.arrangeShipping(address);
// Paziņojuma nosūtīšana
notificationSystem.sendConfirmation(email);
// Papildu loģika vai kļūdu apstrāde
}
}
// Klienta kods, izmantojot fasādi
// OrderProcessorFacade orderProcessor = new OrderProcessorFacade();
// orderProcessor.placeOrder(item, amount, address, email);
// Klientam mijiedarbība būtiski vienkāršojas
Fasāde nesniedz jaunu funkcionalitāti, tā tikai deleģē izsaukumus atbilstošajiem subsistēmas objektiem, nodrošinot ērtu pieejas punktu.