У меня есть элемент управления ListView в формах Windows, который должен отображать список элементов либо в представлении значков, либо в представлении сведений. Я хотел бы отделить логику состояния ListView и создать 2 класса состояний IconsState и DetailsState, унаследовав их от IState, имея все методы, которые нужно вызывать из окна пользовательского интерфейса.
В подробном представлении есть событие RetrieveVirtualItem, а в представлении значков — событие DrawItem. Чтобы вызывать их из переменной IState, присутствующей в пользовательском интерфейсе, оба класса-потомка State должны их реализовать. Наличие DrawItem в DetailsState не делает ничего, кроме возврата. То же самое для RetrieveVirtualItem в IconsState.
Есть ли другой подход к проектированию, чтобы избежать реализации пустых методов в состояниях?