空对象设计模式是一种行为型设计模式,主要用于应对空对象的检查。使用这种设计模式可以避免对空对象进行检查。也就是说,在这种模式下,使用空对象不会造成异常。
空对象模式的组件包括:
- Entity:接口,定义了子struct需要实现的方法
- ConcreteEntity:实现了Entity 的具体struct
- NullEntity:这个就表示了空对象,虽然也实现了Entity接口,但它的值都是空的
- Client:这个类会获取Entity接口实现类的实例并使用它。这里并不关注实现类是
ConcreteEntity
还是NullEntity
,对二者会进行相同的处理。
用个例子来说一下:假设有一所大学,大学有多个系,每个系都有一定数量的教授。
系(department)可以用一个接口来表示:
type department interface { getNumberOfProfessors() int getName() string }
11-07 01:56