エンティティ クラスとビジネス クラスが混在しているプロジェクトがあります。エンティティ 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):
...
}
}
これらのレイヤーを次のように分離したい:
// 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);
...
}
}
このリファクタリングを行うにはどうすればよいですか? クラスの名前を変更するにはどうすればよいですか?
どんな考えでも非常に役に立ちます!ありがとう!