考虑一个类 Device 如下。考虑一个方法 filterByType,它接受一组设备作为输入参数并返回指定类型的设备:
class Device
{
String barcode;
String name;
String type; // values like 'Laptop', 'Desktop', 'Tablet' etc.
// other methods
.
.
.
}
类设备管理器{
/**
* @param devices is a list of Device type objects
* @param requiredType filter
*/
List<Device> filterByType(List<Device> devices, String requiredType)
{
// Assert that the input list is neither null or empty
// Assert that the requiredType parameter is valid
// Do I assert type member here? i.e. Iterate through all collection members to check that type member is non-empty
.
// Filter based on type member value
.
.
// throw an exception if type is empty
}
.
.
}
查询:
我们是否在方法本身的开头添加一个断言,每个实例都具有所需的信息,或者在迭代集合时开始过滤并在类型确实为空时抛出异常是否更好
在方法级别 javadoc 中添加必须提供 Device 'type' 成员(即非空)的注释是否是一种好习惯,或者这是否提供了太多(内部)实现细节