У меня есть ряд объектов, которые я отобразил в базу данных с LINQ to SQL. Таблицы сильно нормированы. Я собираюсь отвлечься от моей проблемы. У меня есть пять центральных объектов, которые я реализовал в базе данных. Затем у меня есть ряд других объектов, которые я хочу реализовать одним или всеми из этих пяти объектов.Pseudo Multiple Inheritance
Предположим, что я реализую своего рода класс стадиона (думаю, спортивные команды). Эти пять субъектов - пять основных видов спорта; Бейсбол, Баскетбол, Футбол, Хоккей, Футбол. Я хочу явно реализовать класс для каждого стадиона.
Это пример, на стадионе Yankee проводятся игры в бейсбол, хоккей и футбол. Я хочу, чтобы он реализовал каждый из этих трех интерфейсов. The StadiumBaseClass - мой абстрактный базовый класс, который взаимодействует с моей базой данных. The StadiumBaseClass реализует все 5 основных спортивных интерфейсов. Я не хочу иметь тот же код для реализации интерфейса IBaseball на всех возможных стадионах, я хочу, чтобы он был реализован один раз в StadiumBaseClass.
Этот пример, я только хочу реализовать 3, это лучший способ сделать это? Это своего рода одиночный, но не совсем?
class YankeeStadium : IBaseball, IHockey, IFootball
{
StadiumBaseClass _Stadium {get; set;}
// IBaseball
public IBaseball.Whatever {get { return _Stadium.Baseball;} }
// IFootball
public IFootball.Whatever {get { return _Stadium.Hockey;} }
// IHockey
public IHockey.Whatever {get { return _Stadium.Hockey;} }
}
Можете ли вы ознакомиться с шаблоном абстрактного завода и посмотреть, похоже ли это на то, что вам нужно. –
Итак, 'StadiumBaseClass' ваш« абстрактный базовый класс », как говорит ваше описание, или объект данных, который инкапсулирует все стадионы, как показывает ваш код? – dasblinkenlight
Вы C# 4.0 или до 4.0? – dasblinkenlight