我有一個項目混合了實體類和業務類。實體bean是業務的一部分,全部用於整個項目。混合實體和業務類 - 需要重構幫助
我該如何最好地重構這些類來分離這些圖層。我也想盡可能減少實施者的變化。最好不要更改,否則需要更新數百個參考文獻。 我應該如何重命名類並通過這個工作?的混合碼
實施例:
// 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);
...
}
}
我該如何解決這個重構問題? 我應該如何重命名我的課程?
任何想法都會非常有幫助!謝謝!
對於findByUser,你傳入一個用戶,這將是有道理的,像「user.currentLanguage」或「user.getCurrentLanguage()」會出現在「用戶」實體,這使得該功能是不必要的。 –