服务层中的类型安全ID用于防止错误

时间:2013-04-30 20:13:49

标签: identity dto service-layer type-safety

我目前正在撰写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);
    ...
}

我可能完全错了,但除了像更复杂的模型这样的缺点之外,它还提供了在一开始就防止这种错误的可能性。

这是好事还是疯狂的想法?

0 个答案:

没有答案