我的实体类及其"logic"的最佳实践是什么 - 是否拆分?如果是这样,如何?



我已经开始学习Hibernate,需要了解与实体类和可能的方法逻辑相关的最佳实践。以下是我的简单示例:(

@Entity
public class Service {
@Id
@GeneratedValue
@Column(name = "service_id")
private int serviceID;
@Column(name = "service_name")
private String serviceName;
@Column(name = "server_name")
private String serverName;
@Column(name = "server_os")
private String serverOS;
@Column(name = "port")
private Integer port;
@Column(name = "location")
private String location;
/*
* Origin of my question (simple logic for microservices)
*/
private boolean pingURL() {
... do something with port etc ...
}
public void boot() {
... do something with port and pingURL() ...
}

我的问题是,把我的";逻辑";在这里这是一个非常简单的例子,但我想以一种干净的方式正确地学习。比方说,这些方法有5到10种。也可以吗?有些事情困扰着我,我认为正确的方法是将方法拆分为单独的类或类似的东西。

我的控制器像这样(简单的例子(

@PostMapping("/bootService")
public void bootService(@RequestBody Service service) {
service.boot();
}

所以,如果我想把";逻辑";从我的实体来看,我该如何以最佳方式处理它,以便我仍然可以在控制器中使用Service(Service.boot(((?

谢谢你帮我:(

***编辑:

有了@Alien的答案,这就是我的想法,我这样对待它:

public class ServiceHandler {
private Service service;

public ServiceHandler(Service service) {
this.service = service;
}
/*
* Origin of my question (simple logic for microservices)
*/
private boolean pingURL() {
... do something with port etc ...
}
public void boot() {
... do something with port and pingURL() ...
}
}

我的控制器看起来是这样的:

@PostMapping("/bootService")
public boolean bootService(@RequestBody Service service) {
ServiceHandler serviceHandler = new ServiceHandler(service);
serviceHandler.boot();
}

这更好还是我能做得更好?

实体类应该只包含字段和getter/setter、hashcode和equals方法。

或者一些处理瞬态变量数据的方法(如果有的话(。

在某个服务类中编写您的逻辑。

相关内容

最新更新