默认情况下,Spring框架会将所有bean创建为单例。 这与基于面向对象编程的基于模板(类)创建多个对象实例的概念相矛盾。
答案 0 :(得分:0)
这与基于面向对象的编程概念相矛盾,即基于模板(类)创建多个对象实例。
不,不是。 Spring正在使用"模板"在制作单身人士时引擎盖下。
OO原则说可以创建多个对象 。如果没有保证,他们不会说必须是一个类的多个实例。事实上,甚至还有一个经典的OO设计模式支持这个 1 。
此外,当有必要时,Spring框架可以创建多个实例。
1 - Singleton设计模式存在问题(配置与代码,可测试性等),但它不会以任何方式违反OO编程原则。有趣的是,像Spring这样的DI框架实际上有助于解决Singleton模式的缺点。
答案 1 :(得分:0)
好吧,如果您真的考虑过,spring确实会使OOP的某些实践变得非常困难/不可能,说:
return new Cached(new ImageLoader("cat.png")).load();
或
return new Parrarel(new ImageLoader("cat.png"), new ImageLoader("dog.png")).load();
在春季(以及大多数DI框架),这真的很难(甚至不知道是否可行)。