У меня есть проект, в котором классы Entity Classes и Business смешиваются. Сущности beans являются частью бизнеса, и все они используются во всем проекте.Смешанная сущность и бизнес-классы - Необходима помощь в рефакторе
Как лучше всего переформулировать эти классы для разделения этих слоев. Я также хочу, чтобы изменения в исполнителей были минимальными, насколько это возможно. Желательно никаких изменений, иначе сотни ссылок должны быть обновлены. Как мне переименовать классы и работать через это?
Пример смешанного кода:
// Mixed business-entity class
public final class Language {
private final Long id;
private final String code;
private final String description;
//Constructor
public Language() {
}
//getters and setters
public String getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
...
//Business is a part of this class
public static Language findByUser(User user) {
Language language;
...implementation to find user language...
return language;
}
....
}
// Implementing class
public class Messenger {
public Messenger() {
}
public static void sendEmail() {
...
Language emailLanguage = Language.findByUser(user):
...
}
}
Я хочу separte эти слои:
// Entity Class
public final class Language {
private final Long id;
private final String code;
private final String description;
//Constructor
public Language() {
}
//getters and setters
public String getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
...
}
// Бизнес-класс
public final class LanguageImpl {
public LanguageImpl() {
}
public static Language findByUser(User user) {
Language language;
...implementation to find user language...
return language;
}
....
}
Обеспечение минимальных изменений в реализации классов, предпочтительнее без изменений. В противном случае много работы придет из-за ссылок по всей базе кода.
// Implementing class
public class Messenger {
public Messenger() {
}
public static void sendEmail() {
...
Language emailLanguage = Language.findByUser(user);
...
}
}
Как я могу работать через этот рефакторинг? Как мне переименовать мои классы?
Любые мысли были бы очень полезными! Благодаря!
Для пользователя, который вы передаете пользователю, было бы разумно, что в объекте «Пользователь» будет присутствовать нечто вроде «user.currentLanguage» или «user.getCurrentLanguage()», что делает эту функцию ненужной. –