抽象逻辑以避免重复实现

问题描述 投票:0回答:1

我需要抽象以下结构,以避免实现在 x 中执行两次在 y 中的逻辑。下面是代码结构。

更具体一点:第一个代码部分由 JSF 框架使用。因此SpecificHandler的类也用@ViewScoped注解。 SpecificOnCreate 类是从 REST API 调用的,因此是无状态的。在 SpecificHandler 中执行的逻辑现在也应该在 SpecificOnCreate 中执行,因此必须进行抽象。有人对此有什么想法吗?

public interface Handler  {
 Container createComponents(ar1, arg2, arg3);
}

public class DefaultHandler implements Handler {
 @Override
 public Container createComponent(arg1, arg2, arg3) {
  // logic here
 }
}

@ViewScoped
public class SpecificHandler extends DefaultHandler {
 @Override
 public Container createComponent(arg1, arg2, arg3) {
  // logic here
 }
}
public interface OnCreate  {
 Dto onCreate(ar1);
}

public abstract class OnCreateBase implements OnCreate {
 @Override
 public Dto onCreate(arg1) {
  // logic here
 }
}

public class SpecificOnCreate extends OnCreateBase {
 @Override
 public Dto onCreate(arg1) {
  // logic here
 }
}
java rest jsf design-patterns
1个回答
0
投票

您可以将接口内部的逻辑实现为默认实现。因此,请避免重复。 请参阅 https://www.baeldung.com/java-static-default-methods#why-interfaces-need-default-methods 了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.