我目前正在撰写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);
...
}
我可能完全错了,但除了像更复杂的模型这样的缺点之外,它还提供了在一开始就防止这种错误的可能性。
这是好事还是疯狂的想法?