java-类型安全整数的设计模式?
作者:互联网
我有一个可以处理实体的应用程序,这些实体都具有整数___ID主键(例如StudentID,CourseID等)
我想在程序中添加一些类型安全性,例如,将输入StudentID作为输入的函数不会偶然传递CourseID.
我想到的第一个想法是创建简单的空类,如下所示:
public class StudentID extends java.util.Integer {}
public class CourseID extends java.util.Integer {}
这不起作用,因为java.util.Integer是最终的,无法扩展.
第二个想法是有一个仅包含整数的数据类:
public class StudentID {
private final int id;
public int get() { return id; }
}
虽然这将是很多样板代码.
第三个想法与第二个想法类似,但是通过使用一个定义get方法的基类和从中继承的空类来节省样板代码:
public abstract class AbstractID {
private final int id;
public int get() { return id; }
}
public class StudentID extends AbstractID{};
public class CourseID extends AbstractID{};
还有其他/更好的已知模式可以解决此问题吗?
解决方法:
ID< T>呢?如果您想将某些参数限制为一个函数,我认为您可以执行以下操作:
void foo (ID<? extends Student> param);
标签:type-safety,java,design-patterns 来源: https://codeday.me/bug/20191121/2051835.html