如何运用Null Object模式
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 | ||||||
现在假设一个旅馆管理系统,建立一个Person类存储住客的相关信息,建立一个Plan类存储住客入住和离开的时间信息。
Person.java
Plan.java
现在,设计旅馆房间类Room,由于不知道该房间当前是否有人入住,所以每次取信息时都需要判断Customer是否为null。
Room.java
现在使用Null Object模式改写上面的例子,避免多次if (customer == null)的判断。
先定义一个接口,表示该类是实现Null Object模式的类。
<<interface>>Nullable.java
改写Person.java,提供一个内部类NullPerson给出在Person为null的情况下的所有实现,并通过单例方式提供它的唯一实例。
Person.java
此时,Room类就可以避免繁杂的null判断了。因为在赋值成员变量customer时,都已经判断是否为null person,如果是的话,则提供NullPerson的实例。
Room.java
|


