Sobes.tech
Junior — Middle

Чӣ гуна метавон таъмин кард, ки модулҳои системавӣ барои васеъ кардан кушода бошанд, аммо барои тағир додан баста бошанд?

sobes.tech AI

Ҷавоб аз AI

Барои он ки модули система барои васеъ кардан кушода, аммо барои тағир додан пӯшида бошад, принсипи кушод/пӯшида (Open/Closed Principle) аз SOLID истифода мешавад.

Ин тавассути:

  • Истифодаи абстраксияҳо (интерфейсҳо, синфҳои абстрактӣ), ки рафторро муайян мекунанд.
  • Иҷрои функсияҳои нав тавассути мерос ё композиция, бе тағир додани коди манбаъ.
  • Истифодаи намунаҳои тарҳрезӣ, мисли Стратегия (Strategy) ё Декоратор (Decorator), ки имкон медиҳанд рафторро динамикӣ илова кардан.

Масалан дар Dart (Flutter):

abstract class PaymentProcessor {
  void pay(double amount);
}

class CreditCardProcessor implements PaymentProcessor {
  @override
  void pay(double amount) {
    print('Пардохт $amount бо корт кредитӣ');
  }
}

class PayPalProcessor implements PaymentProcessor {
  @override
  void pay(double amount) {
    print('Пардохт $amount тавассути PayPal');
  }
}

// Модул аз абстраксияи PaymentProcessor истифода мекунад ва метавонад бо усулҳои нави пардохт бе тағир додани коди мавҷуда васеъ карда шавад.