Spring框架与面向对象编程

时间:2018-05-17 20:13:40

标签: java spring oop architecture frameworks

默认情况下,Spring框架会将所有bean创建为单例。 这与基于面向对象编程的基于模板(类)创建多个对象实例的概念相矛盾。

2 个答案:

答案 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框架),这真的很难(甚至不知道是否可行)。