На мой взгляд, я бы предложил сделать еще одно занятие.
Использование логики if / else повсеместно делает ваш код более запутанным и сложным. Это также делает ваш код более трудоемким и трудным для внесения изменений в будущем, например ... если вам вдруг пришлось ввести новую роль, такую как «Редактор». Было бы глупо пройти через весь ваш код и изменить логику if / else для всех задействованных методов, чтобы включить новую роль.
Лучше просто создать новую активность. Однако это не означает, что будет дублирование кода. Имейте в виду, что «Writer» и «Reader» на самом деле разделяют много кода.
Я не знаю специфики для вас, но я предполагаю, что «Writer» обладает всеми возможностями «Reader», но более того.
Таким образом, вы можете создать Activity для 'Reader', затем расширить эту Activity для 'Writer' и включить только специфический код 'Writer' в эту WriterActivity.
Или вы всегда можете создать базовое действие только с общими функциями «Writer» и «Reader», а затем создать ReaderActivity или WriterActivity, которое распространяется на эту базу.
По сути, я предлагаю использовать другое действие, и вас не должно беспокоить наличие дополнительного действия, приводящего к дублированию кода. Это происходит главным образом потому, что одной из причин концепции наследования в Java является предотвращение дублирования кода и уменьшение избыточности.