Я сделал это, в основном пользователь может переключать параметры, чтобы видеть их или нет в приложении. Есть такие части, как ПОИСК и КАРТА, которые изменяют только значение на карте и ничего больше, было бы лучше создать абстрактный класс и расширить для каждого типа? или любой другой способ лучше ?.
public enum ToggleType {
NAME {
@Override
public void toggle(VideoPlayer videoPlayer) {
videoPlayer.doToggleName();
}
},
EDITOR {
@Override
public void toggle(VideoPlayer videoPlayer) {
if (videoPlayer.isTrue("EDITOR"))
videoPlayer.createEditors();
else
videoPlayer.deleteEditors();
}
},
SEARCH {
@Override
public void toggle(VideoPlayer videoPlayer) {
}
},
MAP {
@Override
public void toggle(VideoPlayer videoPlayer) {
// handle on {@link VideoPlayer#create()}
}
},
protected abstract void toggle(VideoPlayer videoPlayer);
public void run(VideoPlayer videoPlayer) {
videoPlayer.toggleMap.put(name(), !videoPlayer.isTrue(name()));
toggle(videoPlayer);
}