Я ищу написать приложение. Подумайте об электронной коммерции. Но подумайте, сайт электронной коммерции, который работает на другом провайдере.
Сценарий будет таким: я бы обозначил фронт сайта электронной коммерции, работающего на существующей платформе электронной коммерции клиента, будь то Magento, CubeCart, Prestashop или т. Д.
У всех этих платформ будут свои соглашения об именах и так далее, и мне нужен общий интерфейс в моем приложении. Например:
class Product {
var $title;
var $price;
var $image;
var $description;
// and so on
}
Очевидно, что разные провайдеры могут называть вещи по-разному. Например, title
может быть product_title
в поставщике, или product_name
, или productTitle
, и так далее. Другой пример: price
может быть cost
или unit_price
и т. Д. Надеюсь, проблема станет очевидной.
В идеале я хотел бы указать на лучший шаблон проектирования, позволяющий абстрагировать сервис от бизнес-классов моего приложения, чтобы я мог добавлять провайдеров без необходимости что-либо пересматривать в своем приложении.
Какой шаблон проектирования будет лучшим для описанного выше сценария?