Я разрабатываю приложение, в котором используется класс с именем «Правка». Этот класс содержит информацию о том, что пользователь может/не может сделать, а также содержит другие классы, такие как DocumentFilters.Этап проектирования - много ссылок на один и тот же объект
Проблема в том, что у меня есть много разных частей приложения, которые получают экземпляр этого класса через свой конструктор или метод get, чтобы иметь возможность проверить действие пользователя, прежде чем разрешать его. Похоже, это плохая практика (я могу ошибаться). Есть ли способы улучшить это?
Как это работает, основной класс приложения создает класс прав, а затем создает разные компоненты и передает их этим. Компоненты не имеют экземпляра эфира основного класса.
Пример кода. Это повторяется для нескольких модулей.
public class ModuleA{
private Rights rights;
public ModuleA(Rights rights){
this.rights=rights;
}
private boolean verifyRights(ActionEvent e){
if(e.getSource("copyButton"){
if(rights.allowedToCopy){
return true;
}
return false;
}
}
У вас может быть правильный вопрос, но я не знаю, какова ваша точная проблема. Можете ли вы привести примерный код, чтобы проиллюстрировать, в чем ваша проблема? –
У меня есть несколько компонентов (классов), хранящих экземпляр того же класса (Права), чтобы получить доступ к одному из его методов и выполнить проверку. Я прошу, если это плохая практика проектирования, и если есть способ сделать ее лучше. – Giannis
Я бы предложил, чтобы дизайн говорил о том, что (и почему) нужно делать с минимальной ссылкой на то, как это делается. То, что вы предлагаете, может быть хорошо для того, как, но пока у вас нет четкого дизайна (что и почему), это не очевидно для меня, у вас есть дизайн, хороший или плохой. –