我目前正在编写 Java 应用程序的业务逻辑。我把它分成领域层和服务层。服务层提供允许通过数据传输对象访问数据的接口。
我的想法是制作“类型安全”的 ID。这可以简单地描述为该方法getId()
不返回 long 而是返回一个特殊类的对象,该对象由 ID 值和一个 Class-field 组成,以确定引用哪个对象的类型。这样做的动机是,我使用了错误类型的 ID,这导致了难以检测的错误。
ID-Class 看起来像这样:
public class ObjectId<T>
{
private Class<T> type;
prviate long id;
...
}
然后在 DTO 中使用该类:
public class SomeDTO
{
public ObjectId<SomeDTO> getId(){...}
...
}
并且在服务中:
public interface TheService
{
public SomeDTO getSome(ObjectId<SomeDTO> id);
...
}
我可能完全错了,但除了一些缺点,比如更复杂的模型之外,它还提供了从一开始就防止此类错误的可能性。
这是一个好主意还是一个疯狂的主意?