空对象模式
空对项模式的作用就是代替null引用并实现相同接口但没有行为。
在上一篇【Adapter模式进行代码重构】随笔中,我们为ProductService提供了ICacheAdapter接口实现数据缓存,但现在不想实现缓存功能了,如果我们直接给ProductService构造直接传递一个null引用,有可能会使代码发生异常,或者你可以在代码中去检查ICacheAdapter接口实现是否为空,但是这样都会对原来的代码造成大量的修改。所以,通过空对象模式进行处理,是一种非常好的选择。
public class NullObjectCache : ICacheStorage
{
public void Remove(string key)
{
}
public T Retrieve<T>(string key)
{
return default(T);
}
public void Store(string key, object data)
{
}
}
空对象模式要求实现类最好什么都不做。
ASP.NET设计模式:https://book.douban.com/subject/6958404/