所以用单例模式创建的对象必须是该单例类私有的静态对象。
问题就是它是静态对象,静态对象会被存储在”静态存储区”里面,一直到程序退出,才会被回收。
那也就意味着通过单例模式创建的对象越多,内存占用的也就越多。
那有些小公司也不在乎这点内存,项目就这么大,占不了多少内存,占这点内存无所谓,不够了再加。
那还有一个问题,就是后面我觉得这个BLL对象起的名字不妥,想改一下,那所有用到这个BLL对象 的Contoller对象都得改。
那有些人说了,那我不改不就行了,项目能跑能用就行,命名没有那么严格。
那还有一个问题,如果说现在new一个简单的对象,那没啥问题。如果现在new的这个对象比较复杂, 在创建的时候还需要先new其它对象。其它对象在new的时候也比较复杂,比如构造函数里面需要传 入很多参数,new完还要给很多的属性赋值。刚好需要传入的参数还有需要进行赋值的属性都是一些 配置性的东西,会随着业务的需求不断的在变。那这个时候,你就得需要修改每一个用到了该对象的 地方,项目越大,业务越复杂,改的就越多。
所以就需要IOC容器来创建对象,进行解耦,把对象之间的这种依赖关系交给IOC容器来处理,就完 事了。
但是一些小公司,做的一些小项目,需求也没那么复杂,也就没有必要用IOC。