如何避免空检查 - OOP

时间:2015-04-10 02:07:33

标签: java oop

我正在制作游戏,我有一个包含Item的Tile类。

public clas Tile{
    Item item;
    ....
    public void setItem(Item item){
         this.item = item;
    }

}

当我引用Tile时,我想在项目上调用interact()方法。如何在不检查对象是否为null的情况下执行此操作。我不认为Null对象模式在这种情况下会起作用,因为会有混合实例内聚 - 表示空项的项的子类将有一个空的interact()方法。

2 个答案:

答案 0 :(得分:1)

当您尝试使用null时,您正试图找到一种不检查对象是否为空的方法。

在这种情况下,设计一下在执行item != null之前检查item.interact()是否不是反模式或黑客解决方案。

答案 1 :(得分:0)

混合实例内聚问题的定型解决方案是创建子类(并确保超类不公开子类特定的功能)。

因此,您要创建ItemTile的{​​{1}}和NonItemTile子类。

Tile