@roman9966

Вынесение в трэйты работы с API платёжных систем, можно ли?

Есть какой-то сервис который позволяет менять валюту в одной платёжной системе, на другую. Было бы нормально вынести в трейты логику работы с API платёжных систем и потом использовать эти трэйты в классе обмена?

trait PaymentSystem1 {
    ...
}

trait PaymentSystem2 {
    ...
}

trait PaymentSystem3 {
    ...
}

class ExchangerSystem1System2 {
    use PaymentSystem1, PaymentSystem2;
    
    ...
}

class ExchangerSystem1System3 {
    use PaymentSystem1, PaymentSystem3;

    ...
}

class ExchangerSystem2System3 {
    use PaymentSystem2, PaymentSystem3;

    ...
}


Может быть есть ещё какие-нибудь варианты? Как бы сделали Вы?
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MadridianFox
Web-программист, многостаночник
Платёжные системы потому и можно назвать общим понятием "платёжные системы" потому что они предназначены для выполнения каких-то сходных операций. Если вы хотите иметь возможность подменять их или соединять друг с другом в разных комбинациях - вам необходимо привести их к общему интерфейсу, а все отличия инкапсулировать.
Только так.. и это бигмак)
Ответ написан
Комментировать
@Nc_Soft
Мне кажется это не нужно
ExchangerSystem1System2
ExchangerSystem1System3
ExchangerSystem2System3
Я бы сделал 1 класс Exchanger, в конструктор которого передавал бы два PaymentSystem (тоже классы)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы