У меня проблемы с дизайном классов.
У меня есть абстрактный Chip
класс, STM8
класс, который расширяет Chip
и реализует IConfigurable
(который имеет метод Configure).
Я ожидаю, что у каждого класса, который реализует IConfigurable
, будет метод Configure
, который принимает один аргумент, чтобы решить, что настраивать, используя шаблон стратегии (методы).
Код Psuedo:
public void Configure(Periphial p)
{
this.periphials[p]();
}
Конечно, настройки для каждого класса различны. Например, STM8
может иметь GPIO и таймеры, а STM8L
может иметь только GPIO. Тогда способ создания каждого подкласса должен быть глупым, поэтому я хотел бы заставить людей объявлять свои enum
в своих классах.
Наконец, будет ли хорошей идеей инициализировать словарь с парой enum / делегат, чтобы показать, что можно настроить? this.periphials
используется в псевдокоде выше?