Design patterns Web/企业应用程序中主要使用哪些设计模式?
Web/企业应用程序中使用的一些最常见的设计模式是什么?为什么使用这些模式Design patterns Web/企业应用程序中主要使用哪些设计模式?,design-patterns,web-applications,enterprise,Design Patterns,Web Applications,Enterprise,Web/企业应用程序中使用的一些最常见的设计模式是什么?为什么使用这些模式 注意:为什么零件应该基于列出它们倾向于解决的问题的答案?模型视图控制器,用于将业务逻辑与表示层分离,以减少不必要的紧密耦合。 有关的详细信息,请参见或这是非常常见的。它的主要用途是确保您永远不会实例化一个给定类型的多个对象,这使得它可以很好地替代全局变量,而全局变量的名声绝对不好。有不同程度的论据支持和反对单例,一些人声称它和全局变量一样糟糕 我倾向于将其用于我通常称之为“经理”的一大类对象。例如,在需要多个数据库的大型
注意:为什么零件应该基于列出它们倾向于解决的问题的答案?模型视图控制器,用于将业务逻辑与表示层分离,以减少不必要的紧密耦合。
有关的详细信息,请参见或这是非常常见的。它的主要用途是确保您永远不会实例化一个给定类型的多个对象,这使得它可以很好地替代全局变量,而全局变量的名声绝对不好。有不同程度的论据支持和反对单例,一些人声称它和全局变量一样糟糕 我倾向于将其用于我通常称之为“经理”的一大类对象。例如,在需要多个数据库的大型应用程序中,您不希望一直打开大量连接。我将有一个
DatabaseManager
类,它是一个单例,它将在内部管理到每个数据库的连接。消费对象可以调用DatabaseManager::getConnection()
方法,管理者的任务是确保存在单个连接(如果必须打开连接),并将其返回给消费对象
这解决了在所有地方传递全局数据库连接的问题,附带的好处是高效地使用对象,因为只有一个数据库管理器存在。静态调用意味着任何需要它的消费者都可以使用它
模型视图控制器允许业务逻辑和表示层之间的低内聚,这是它的主要价值
通常,每个控制器都是一个Servlet
,它处理单个页面的GET/POST请求,通过呈现正确的视图或将权限转移到另一个控制器来响应这些请求
Viwer将控制器传递的数据转换为Html、Xml、JavaScript、JSON或任何您喜欢的技术。查看器通常是一个Servlet
或一个Servlet抽象,如JSP、ASP等
模型是应用程序操作所依据的数据的特定于域的表示形式。它还可以与域逻辑相结合,为数据提供意义(比如计算生日、购物车购物项目的总额或运费)。
模型应该封装数据,无论底层存储设施如何,都可以轻松访问
由于其与MVC的内聚性较低,您可以独立地更改、开发和测试每个组件
当底层存储机制是数据库时,通常使用此机制。ActiveRecord的基本含义是,所有对象属性都对应于基础数据库中的列,并且每个对象都包含插入、更新、删除(和加载)等函数
因此,每个类被转换成一个表或视图,每个对象成为所述表中的一行
这样做的原因很简单,因为您的类实现了访问和编辑数据库的方法,而不用编写额外的代码。再加上数据库的普及,这足以让这种模式保持有趣
另一个常用的是PoolManager
是一种管理资源
(无论是数据库、工厂方法还是连接)的工具。PoolManager保留一组初始化副本。
每当另一个进程或对象通过PoolManager.acquire()
请求资源时,他就会从池中获取一个对象。然后,他通过
resource.release()
操作资源的副本,并在完成后返回它。但是,对象不会被销毁,它只是返回到池中
池
用于提高性能。例如,如果有一个工厂方法的检索成本很高(即响应速度很慢),那么它通常被包装在
PoolManager
中,并且N实例是在初始化PoolManager
时创建的。这样,客户就不会觉得底层工厂运行缓慢,因为PoolManager
为他们带来了性能上的损失。我使用了很多
特别是在持久化/加载对象时。当我们不确定数据是否来自数据库、web服务或其他机制时,它会有所帮助
通过使用一个接口,允许多个源公开一个用于保存/检索的简单API,并允许对象本身知道要调用哪些API,我们最终得到了一个非常易于管理的体系结构
一个例子是。工厂模式,大多数工厂对象和工厂方法非常常见,
e、 g.xml文档的DocumentFactory。
工厂模式的目的是简化对象创建。我认为&pattern被开发人员广泛使用,但他们不知道他们实际上在使用。我不知道从哪里开始,因为到处都可以找到模式(最终,在引擎盖下)。但让我们试试:
- 我猜大多数(全部?)MVC框架都使用和[GoF]模式
- 在分布式应用程序中,使用基于[GoF]设计模式的会话Facade(用Java中的会话bean实现)是非常常见的
- ORMs实现了[PoEAA]模式(在Java世界中,Hibernate的
、Toplink的会话
、JDO的工作单元
)持久化管理器
- 对于数据访问层,仍然经常使用数据访问对象模式抽象工厂[GoF]和工厂方法[GoF]是相关模式
- 等等等等
- 我发现这很有用:
这不是关于你问的问题,而是上面列出的一些设计模式。我强烈建议你阅读这本pdf格式的书
希望这有帮助