空对象模式

空对项模式的作用就是代替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/

posted @ 2017-06-19 15:11  yangsofter  阅读(299)  评论(0编辑  收藏  举报