B15-关于单例的滥用

一、单例的问题

    1、全局状态

      “单例就是披着羊皮的全局状态” 。一个单例可以在不需要显示声明对其依赖的情况下,被使用在任何地方。单例的全局性和有状态性,导致隐式的在两个看起来完全不相关的模块之间建立了耦合。

    2、生命周期

         单例应该只用来保存全局的状态,并且不能和任何作用域绑定。如果这些状态的作用域比一个完整的应用程序的生命周期要短,那么这个状态就不应该使用单例来管理。用一个单例来管理用户绑定的状态,是代码的坏味道,你应该认真的重新评估你的对象图的设计。

二、避免使用单例的方法

     1、依赖注入

          

          

         

         

 

原文地址:http://www.cocoachina.com/industry/20140615/8830.html

 

 
posted @ 2015-07-20 16:54  朱亚男  阅读(305)  评论(0编辑  收藏  举报