Java 分离实现的最佳方法
我一直在为我的实现进行代码拆分,最终我有3种不同的方法来完成。我不确定Java中是否需要代码拆分,但我打算这样做 第一种方法是将函数放在服务类中Java 分离实现的最佳方法,java,spring-boot,Java,Spring Boot,我一直在为我的实现进行代码拆分,最终我有3种不同的方法来完成。我不确定Java中是否需要代码拆分,但我打算这样做 第一种方法是将函数放在服务类中 @Component("fooService") public final class FooService { public Foo getFoo(UUID id) { Foo foo = findById(id); validateFoo(f); return foo; } private void val
@Component("fooService")
public final class FooService {
public Foo getFoo(UUID id) {
Foo foo = findById(id);
validateFoo(f);
return foo;
}
private void validateFoo(Foo foo) {
if (foo.isBanned) {
throw new Exception("Banned...");
}
}
}
第二种方法是创建一个单独的类并将其命名为foovality
。使用这种方法,我需要将validatefo
设置为静态
public final class FooValidity {
public static void validateFoo(Foo foo) {
if (foo.isBanned) {
throw new Exception("Banned...");
}
}
}
@Component("fooService")
public final class FooService {
public Foo getFoo(UUID id) {
Foo foo = findById(id);
FooValidity.validateFoo(f);
return foo;
}
}
第三种方法是将foovality
设置为@Service()
,并惰性地调用它
@Service("fooValidity")
public final class FooValidity {
public void validateFoo(Foo foo) {
if (foo.isBanned) {
throw new Exception("Banned...");
}
}
}
@Component("fooService")
public final class FooService {
private final FooValidity fooValidity;
public FooService(org.springframework.context.annotation.@Lazy FooValidity fooValidity) {
this.fooValidity = fooValidity;
}
public Foo getFoo(UUID id) {
Foo foo = findById(id);
fooValidity.validateFoo(f);
return foo;
}
}
哪种方法是最好的,或者我真的需要像这样进行代码拆分?它们都是正确的,让我看一下:
“我不确定Java中是否需要代码拆分”required是一个强有力的词。如果它不会导致编译器错误,那么它就不是“必需的”@FedericoklezCulloca我也曾是一名前端开发人员,并为一个网页包项目进行了代码拆分。代码拆分可以创建多个捆绑包,这些捆绑包可以在运行时动态加载。然后我做了一些关于Java代码拆分的研究,没有找到一个好的结果。因此,我想自己做,并提出了3种不同的方法。但我真的不确定这是否有必要…谢谢。这些都是好的观点。在提出此类案例之前,我可以问自己这些问题。