У меня есть веб-сайт .net, написанный на C #, и я буду использовать функции, которые могут использовать другие разработчики.Поэтому я сделаю некоторую реализацию по умолчанию, и разработчик может перезаписать некоторые методы
Пример: у меня есть класс ShoppingCart
и класс Product
, у продукта класса есть метод getProductPrice
, магазинная тележка вызовет методgetProductPrice
для расчета общей цены корзины
ShoppingCart
и Product
находятся в одном проекте, и я дам разработчикам .dll, чтобы они не могли изменить исходный код, чтобы мы моглипозже обновите сборку
Поэтому им нужно создать другой проект, расширить класс продукта и перезаписать метод getProductPrice
, чтобы они могли реализовать свою собственную логику. Проблема в том, что корзина покупок не будет вызывать расширенный метод, нооригинал
Если мы уже создадим расширенный проект для разработчиков, и корзина покупок вызовет расширенный метод, то у нас будет циклическая ссылка, потому что расширенному продукту нужна ссылка на продукт, а корзина покупок на расширенный продукт
Частичные классы также не работают, потому что мы только сЧастицы использования в одной сборке
У кого-нибудь есть предложения?
Заранее спасибо.