@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 (тоже классы)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект