考虑由多个不同应用程序使用的现有数据访问和业务逻辑层,直到现在,只需要在消耗它的任何给定应用程序的使用寿命中进行单个数据连接 - 因此,可以简单地通过数据删除连接信息从应用程序的配置文件中层。但是,向前迈进,数据和逻辑类需要为应用程序提供灵活性,以根据每个呼叫确定数据连接。更重要的是,这些课程现在由多个应用程序通过服务单独调用。

呼叫者不想专门管理连接字符串,而是以枚举形式进行连接名称,该名称可以解决到数据层中和通过数据层中的连接字符串。

当前,所有数据和逻辑类都是静态的,并且数据被内部范围范围范围,并且逻辑被范围为公共。

考虑到诸如API使用性,性能,线程安全 /呼叫者隔离等内容的数据类中,从呼叫者一直从呼叫者那里获得钥匙的一些好策略是什么。

两个明显的选择是:

  1. 将连接键作为参数添加到所有方法中。 uck-不会发生,而是要完整。

  2. 将逻辑和数据类更改为实例类,并传递构造函数中的密钥,以供任何成员使用方法使用。没有方法签名更改,但是对API的调用方式有实质性的破坏。

还有哪些其他选择?

有帮助吗?

解决方案

不幸的是,您对如何处理此类问题达到了两个最佳选择。 #2通过涉及服务使#2变得更加复杂,因为不同的服务请求要么需要一种方法来记住哪个客户是哪个客户(例如会话),要么必须通过每个呼叫上的服务传递连接信息。

我认为,如果您创建客户端包装器类以访问服务,则可以限制需要多少客户端更改。对于服务本身,我认为您确实每次都会将连接作为参数被卡住,仅仅是因为那里的替代方案非常复杂。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top