【发布时间】:2016-10-16 12:02:49
【问题描述】:
我有一些代码我想重新分解,这样它就不会违反单一职责原则 (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;
}
}
【问题讨论】:
标签: java class interface solid-principles single-responsibility-principle