不确定设计类采用哪种方法。
X.loc[:, 0] = labelencoder_X.fit_transform(X.loc[:, 0])
AbstractAuthoringEvent抽象类实现接口
public interface AuthoringEvent {
ProcessingResultEvent authoringEvent(Event data);
}
AuthoringEventIT类扩展了抽象类
public abstract class AbstractAuthoringEvent implements AuthoringEvent {
@Override
public ProcessingResultEvent authoringEvent(Event data) {
ResponseEntity<Event> resultData = callService(data);
etc...
}
protected abstract ResponseEntity<Event> callService(Event requestData);
}
资源终结点类
public class AuthoringEventIT extends AbstractAuthoringEvent {
@Autowired
private RESTClient restClient;
protected ResponseEntity<Event> callService(Event requestData) {
return restClient.callWebServiceWithAction(url, httpPostMethod, requestData, Event.class);
}
我还有另外两个相同的实现,例如Event for Venue和Organization模型类。我知道我可以删除接口并在抽象类级别上做所有事情,所有具体类都将按照自己的目的在AuthoringEventIT.class上实现,但是我的问题是...
这些抽象类是否真的需要单独的接口来实现?也许所有3个抽象类都可以用某种通用方法来实现一个Authoring接口,但是如何避免在AuthoringEventIT这样的具体类中实现扩展抽象类并需要再次实现已经在抽象类中实现的接口方法呢? 非常感谢...
答案 0 :(得分:0)
在Spring框架中,一个接口具有多个实现没有问题。如果接口和最终实现之间将是一个抽象类,这将不是问题。
在这种情况下,有两种方法可以解决冲突:
在第一种情况下,会是这样
@Component("authoringEventIT")
public class AuthoringEventIT extends AbstractAuthoringEvent { //code }
@Autowired
@Qualifier("authoringEventIT")
private AuthoringEvent authoringEventIT;