私は、単一責任原則(SRP)に違反しないように再因子付けしたいコードをいくつか持っています。単一の責任原則リファクタリング
は、私は以下のクラスは複数の理由で変更される可能性があることを理解する:
- ビジネス・ルールはしかし
を変更することができ、私は、別のクラスにどのように再因子付けできるかを考え出すのに苦労しています。
Engine.java
package com.example;
import java.util.List;
public interface Engine {
public List<Recording> analyze(List<String> files);
public List<Recording> getMetadata(List<Recording> recordings);
public List<Recording> upload(List<Recording> recordings);
}
CallEngine.java
package com.example;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CallEngine implements Engine {
final static Logger log = LoggerFactory.getLogger(Main.class);
public List<Recording> analyze(List<String> files) {
log.info("Analyzing recording files per business rules...");
List<Recording> recordings = new ArrayList<Recording>();
return recordings;
}
public List<Recording> getMetadata(List<Recording> r) {
log.info("Retrieving metadata for calls...");
List<Recording> recordings = new ArrayList<Recording>();
return recordings;
}
public List<Recording> upload(List<Recording> r) {
log.info("Uploading calls...");
List<Recording> recordings = new ArrayList<Recording>();
return recordings;
}
}