从网站性能的角度来看,DTO 有哪些优点和缺点?
-
01-07-2019 - |
题
从网站性能的角度来看,DTO 有哪些优点和缺点?(我指的是在与 Web 服务器不同的应用程序服务器上访问数据库的情况 - 并且 Web 服务器可以直接访问数据库。)
解决方案
DTO 不是性能问题。我认为您要问的是分层对性能的影响。特别是,在 Web 层(Web 服务器)和数据层(数据库服务器)之间使用应用程序层。
一般来说,这意味着延迟会增加(您有额外的网络往返次数),但您可以通过在计算机之间分配负载来获得一些额外的容量。
人们这样做的另一个常见原因(同样是非性能)是允许他们将 Web 服务器放置在 DMZ 中,同时将应用程序和数据库服务器保留在防火墙内。
另一个潜在原因(非性能)是能够在单个应用程序之上插入多个 UI。我在过去的项目中做到了这一点,并取得了很好的成果(在业务需要的情况下)。
另外,不要低估维护这种性质的架构所需的工作。它比非分层解决方案需要更多工作,因此仅在您预计需要时才使用它。
话虽如此,使用 DTO 并不一定需要使用分层。
我发现的关于分层的最佳描述来自 Martin Fowler 的书《分析模式》。后面有一小部分介绍应用程序外观和分层。
重申一下之前的答案,DTO 不是性能问题。它只是一个没有用于在应用程序的各个部分之间提供隔离的方法的类。
我还建议阅读 Martin 的另一本书《企业应用程序架构模式》。DTO“模式”记录在那里。
不隶属于 StackOverflow