Middle
Фасад (Facade) деген эмне?
sobes.tech AI
AIден жооп
Фасад — бул структуралык дизайн үлгүсү, ал бир топ интерфейстерге бириккен интерфейсти камсыз кылат. Ал жогорку деңгээлдеги интерфейсти аныктайт, ал подсистеманы колдонууда жеңилдик берет, анын ички түзүлүшүнө кирбестен.
Фасаддын негизги максаттары:
- Жөнөкөйлүк: Подсистеманын татаалдыгын жөнөкөй интерфейс аркылуу жашырат.
- Туташтыкты азайтуу: Кардар коду гана фасад менен иштейт, түз эле подсистеманын компоненттери менен эмес.
- Энкапсуляция: Подсистеманын ички түзүлүшүндөгү өзгөртүүлөр фасадды колдонгон кардар кодуна аз таасир этет.
Мисал:
Интернет-дүкөндөгү заказ иштетүүчү татаал системаны элестетели, ал инвентаризация, төлөмдөр, жеткирүү жана кабарлоо подсистемдерин камтыйт. Кардар ар бир подсистемага өзүнчө методдорду чакырбай, OrderProcessor фасадын түзсө болот.
// Фасадсыз структуранын мисалы
// Кардар коду татаал болот
// inventorySystem.checkStock(item);
// paymentSystem.processPayment(amount);
// shippingSystem.arrangeShipping(address);
// notificationSystem.sendConfirmation(email);
// Фасад менен структуранын мисалы
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) {
// Текшерүү
inventorySystem.checkStock(item);
// Төлөмдү иштетүү
paymentSystem.processPayment(amount);
// Жеткирүүнү уюштуруу
shippingSystem.arrangeShipping(address);
// Билдирүү жөнөтүү
notificationSystem.sendConfirmation(email);
// Кошумча логика же каталардын иштетилиши
}
}
// Кардар коду фасадды колдонуу менен
// OrderProcessorFacade orderProcessor = new OrderProcessorFacade();
// orderProcessor.placeOrder(item, amount, address, email);
// Кардар үчүн өз ара аракеттешүү маанилүү түрдө жеңилдетилет
Фасад жаңы функция кошпойт, ал гана тиешелүү подсистеманын объекттерине чакырууларды делегирлеп, ыңгайлуу кирүү чекитин камсыздайт.