Spring框架中使用了哪些设计模式?[关闭]


90

Spring框架中使用了哪些设计模式?


它包括10多种模式,包括..MVC,Front控制器,View Helper,Singleton,Prototype,Factory等。 javabench.in/2012/02/design-patterns-being-used-in-spring.html
劳尔

Answers:


74

有许多使用不同设计模式的负载,但是有一些显而易见的负载:


更新以下评论:对于MVC,您可能需要阅读MVC参考。

在MVC中使用的一些显而易见的模式:

  • 模型视图控制器:-)。Spring MVC的优点在于,您的控制器是POJO,而不是servlet。这使得对控制器的测试更加容易。需要注意的一件事是,仅需要控制器返回逻辑视图名称,并且将视图选择留给单独的ViewResolver。这样可以更轻松地将控制器重用于不同的视图技术。

  • 前控制器。Spring提供了DispatcherServlet来确保传入的请求被调度到您的控制器。

  • View Helper -Spring具有许多自定义JSP标记和Velocity宏,以帮助将代码与视图中的表示分离。


谢谢,Spring MVC模块中使用了哪些设计模式?
托尼2009年

10
我认为Spring不会为bean实现单例。请注意,单例范围的Bean将在每个应用程序上下文中具有一个实例。因此,如果您的应用程序具有两个Spring上下文,它们将加载同一个Singleton bean,Foo并且您检索Foo每个上下文的实例,则将获得两个不同的对象引用。取而代之的是,此处采用的设计模式是轻量化
Luiggi Mendoza

@Luiggi Mendoza你的意思是春天没有单身对象?请给我一些解释。
Kumaresan Perumal

1
@KumaresanPerumal单例模式和单例实例之间存在显着差异(请注意大写/小写S)。单例模式是关于在整个应用程序中维护对象的单个实例。当检测到单例bean时,Spring要做的是为每个应用程序上下文创建一个实例。应用程序上下文是Spring的核心组件,用于委派对象的创建和检索。每个应用程序上下文仅创建一次singleton bean。
Luiggi Mendoza

模型视图控制器,前端控制器和视图的链接有助于访问oracle.com/technetwork/java/index.html。您能否使用有效链接更新答案?
SpringLearner '17

12

当然,依赖注入或IoC(控制反转),这对于整个BeanFactory / ApplicationContext都是至关重要的。


10

DI东西实际上是某种策略模式。每当您想交换一些逻辑/实现时,通常都可以在主机类上找到一个接口和一个合适的setter方法,以连接该接口的自定义实现。


主人的回答。@Oliver您可以在这里说明更多模式吗?
加拉夫

6

Spring是最佳实践API模式的集合,只要您能武装起来,就可以写下它们的购物清单。API的设计方式鼓励您(但不强迫您)遵循这些模式,而有一半的时间却不知道自己在遵循这些模式。


3

服务定位器模式-ServiceLocatorFactoryBean在上下文中保留所有Bean的信息。当客户端代码使用名称请求服务(bean)时,它只是在上下文中找到该bean并返回它。客户端代码不需要编写与Spring相关的代码来定位Bean。




1

Factory方法模式:用于创建对象实例的BeanFactory Singleton:实例类型可以是上下文的Singleton原型:实例类型可以是原型。构建器模式:您还可以在类中定义一个方法,该方法将负责创建复杂的实例。


0

Spring容器根据bean范围(单个,原型等)生成bean对象。因此,这看起来像实现Abstract Factory模式。在Spring的内部实现中,我确定每个范围都应绑定到特定的工厂类。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.