我有一个工厂类,它生成Order对象,而Order对象又创建Item对象。这3个类捆绑在一个包中,没有其他类。每个项目都有一个" ItemMode"属性。我创建了过多的空检查以实现防御性编程风格。虽然我对这种编码风格很有信心,虽然它有点冗长,但我现在怀疑这种方法,原因如下:
你会保留多余的支票吗?
我首先制作了Item类:
class Item
{
//Constructor
protected Item(ItemMode mode)
{
if(mode == null)
{
throw new IllegalArgumentException("mode should not be null.");
}
}
...
}
然后是Order类:
class Order
{
//Constructor
protected Order(ItemMode mode, ...)
{
if(mode == null)
{
throw new IllegalArgumentException("mode should not be null.");
}
}
...
public void methodThatMakesSomeItems()
{
...
}
}
最后是工厂类:
class Factory
{
//Constructor
public Factory(ItemMode mode, ...)
{
if(mode == null)
{
throw new IllegalArgumentException("mode should not be null.");
}
}
...
public void methodThatMakesSomeOrders()
{
...
}
}