我想在分层架构中开始讨论套接字服务器的正确位置。假设我们有一个包含四层的软件:
当套接字向应用程序公开公共连接点时,它应该放在服务层中,对吧?另一方面,其他层依赖于套接字服务器,所以应该在最下层a.k.a持久层?
让我感到困惑的是,我应该只将类放到持久层,后者使用其他服务和数据库。
您对此主题有何看法?您如何推断您的决定?
答案 0 :(得分:1)
我很困惑,为什么其他东西依赖于您的套接字服务器?套接字服务器应与Presentation层位于同一层。它是您系统的另一个接口点,因此,没有什么可以依赖它。
在架构上,您的套接字服务器与与您的服务连接的网页没有什么不同。
我假设这个陈述:"我应该只将类放到持久层,这会消耗其他服务和数据库"意味着您应该在持久层中隔离外部依赖项。这通常是正确的,因为您的数据库 是外部依赖项,因此应该与所有其他外部依赖项隔离。将其称为持久层是一种有用的心理快捷方式,但实际上,它是您的外部依赖关系"层,通常由数据库持久性逻辑控制。
理想情况下,如果您正在寻求Clean Code或DDD架构,您的代码中没有一个依赖于持久层,它们是外部依赖关系,应该通过存储库模式进行抽象。 / p>
答案 1 :(得分:0)
套接字服务层应该在另一层中称为Infrastructure,在这一层可以实现或接口。作为类的服务可以在任何层中业务逻辑或应用程序或数据访问它取决于此服务类的功能!