У меня есть два класса (A
и B
), который реализует тот же интерфейс (I
) в C#. Интерфейс имеет 5 методов для реализации. Реализации двух из этих методов почти одинаковы как для A
, так и для B
, за исключением того, что каждая реализация использует другую переменную. Вот абстрактный макет моих классов.Лучший способ реализовать аналогичные методы двух разных классов?
class A : I
{
Folder folder;
void method()
{
//implementation uses ``folder``
}
class B : I
{
List list;
void method()
{
//implementation uses ``list``
}
}
Поскольку реализация Method
одинакова (за исключением одного параметра) Я хочу, чтобы реализовать Method
только один раз. Каково наилучшее решение по шаблонам проектирования? одним простым вариантом является определение третьего класса, который реализует Method
и принимает один параметр (либо list
, либо folder
), а затем называет его в пределах Method
от A
и B
. Любое другое решение?
------------ Edit ---------------
Я не хочу, чтобы мои Method
, чтобы получить какой-либо дополнительный параметр. В таких условиях не статический класс util лучше, чем определение абстрактного класса?
Возможно, использовать абстрактный класс вместо интерфейса? –