У меня есть VolumeButton, который является производным от ButtonModifier. Если я помещу свою бизнес-логику (увеличение/уменьшение громкости, отключение звука и т. д.) в VolumeButton, включу/отключу логику для базового класса ButtonModifier. Нравиться,
public class VolumeButton : ButtonModifier
{
/// Event handler to change the volume.
void ChangeVolume() { ... }
}
public class ButtonModifier
{
/// Updates the visibility of the button.
void UpdateVolumeVisibleStatus() { ... }
/// Enable or disable the button.
void Enable(bool enable) { ... }
}
С одной стороны, изменение бизнес-логики влияет на VolumeButton, а изменение инфраструктуры влияет на ButtonModifier. Так что это соответствует SRP. С другой стороны, VolumeButton унаследовал логику включения/отключения от базового класса. Значит, у него две обязанности?
Эти два класса соответствуют SRP?