Login
Задачи для начинающих
5160 просмотров
Перейти к просмотру всей ветки
in Antwort uscheswoi_82 28.01.21 23:07
Может быть я что-то не так понял (и уж точно я не знаю питон :) ), но мне кажется, что ты пытаешься решить задачу "в лоб" :)
Я понимаю, что задача настолько просто сформулирована, что "в лоб" решить ее гораздо проще ;)
Но все таки мне кажется, что тут нужно сделать 2 класса:
1) Контроллер градуcника
2) Контроллер обогревателя
Контроллер градусника должен посылать сообщения контроллеру обогревателя.
Таким образом логика контроллера обогревателя становится максимально примитивной и, что важно, тестируемой:
public interface ITermometerController { event EventHandler<TemperatureEventArgs> Temperature; } public class TemperatureEventArgs : EventArgs { TemperatureArgs (int value) { Value = value; } public int Value {get; private set; } } public interface IHeaterController { void HeaterOn (); void HeaterOff (); } public class HeaterController : IHeaterController { public HeaterController (ITermometerController termometer) { termometer.Temperature += termometer_Handler; } public void HeaterOn() { ... } public void HeaterOff() { ... } public void termometer_Handler(object sender, TemperatureArgs e) { if (e.Value > highThreshhold) HeaterOff(); else if (e.Value < lowThreshhold) HeaterOn(); } }
Вот и весь код :)