- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好吧,我过去使用过 ServiceStack ORMLite,现在尝试使用 ServiceStack RESTful DTO 模式。我过去使用过 WCF/Web API,对我来说,使用不同方法的服务是一种自然的范例,您只需在需要时进行 RPC 调用。然而,在阅读 Servicestack 的 DTO 模式及其旗舰参数时:
When you're working with a remote interface, such as Remote Facade (388), each call to it is expensive. As a result you need to reduce the number of calls, and that means that you need to transfer more data with each call. One way to do this is to use lots of parameters. However, this is often awkward to program - indeed, it's often impossible with languages such as Java that return only a single value.
The solution is to create a Data Transfer Object that can hold all the data for the call. It needs to be serializable to go across the connection. Usually an assembler is used on the server side to transfer data between the DTO and any domain objects.
这个论点本身为我引出了很多问题:
最佳答案
Data Transfer Object pattern这不是 ServiceStack 基于消息的服务受益的唯一模式,它还采用了相关的 Remote Facade和 Service Gateway模式,这个以前的答案 describes benefits it gains by leveraging clean DTOs和文档列表 Advantages of message-based Services .
Does it mean that when a page loads which deals with Product object then we just bring all the data from Product table
没有粗粒度接口(interface)并不是要将整个 Product 数据集和缓存都放在客户端上。您只会返回对该上下文有用的数据,因此如果您需要有关产品的信息,那么您将返回产品和相关元数据,这些元数据在查看产品时对客户有用,例如类别/供应商信息,以防止客户端必须执行多个服务调用来获取他们需要的东西,从而减少延迟,减少需要维护/记录/学习的 API 表面积,使相同的服务更可用于不同的客户端用例使用支持多个客户端的单个缓存条目,并且不太可能在 UI 更改时需要重写后端服务,而不是特定于客户端的 RPC 调用。
What if one call Get all ends up being a lot of data?
不,当您只需要摘要搜索结果时,不要使用完整的数据集。优化搜索以仅返回需要在搜索结果中显示的数据。查看单个数据集时,您可以获取与产品相关的元数据。
What if I am a bad developer and completely disregard the fact that this service is designed for a lot of re-use and ends up calling service every time any data is required. Wouldn't that be two edged sword?
API 使用者不太可能在现有服务返回所需数据时寻找不同的 API 进行调用。拥有更少的更粗粒度的 API 调用自然有助于减少更容易缓存的调用,即使对于不知道如何构建高效并发 API 调用的天真的开发人员来说,也能减少延迟。
关于c# - Service Stack 的 DTO 模式真的有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029194/
我看到 DTO 类型在域模型中的类型内创建并在类型之间传递。这是好习惯吗? 我一直认为 DTO 主要用于上下文边界(即对象图的边缘)以解耦上下文实现(例如域/ui 边界)。 最佳答案 你的问题有点主观
我们将使用 DTO 向表示层发送数据或从表示层发送数据。我们有这样的层: 外观 应用服务 域名 我们使用 Dozer 来帮助我们将实体转换为 dto。但我现在有两个问题: 从entity到dto我们可
我对术语有疑问。根据 Fowler 的说法,DTO 是“在进程之间传输数据以减少方法调用次数的对象”。 (http://martinfowler.com/eaaCatalog/dataTransfer
我们使用 spring-boot 开发的应用程序遵循微服务架构。为了解释这个问题,让我们考虑 3 个不同的服务 A、B、C。服务 A 和 B 也使用服务 C 的一些 API。 我在项目 C(服务 C)
所以基本上我正在编写一个使用 DTO 的 API,但我在返回 DTO 内的另一个实体时遇到了问题。 这是我的 DTO: public class DirectoryDTO { String per
我尝试从方法响应正文中获取派生类字段。请求体参数是基类的类型。请求带有派生类字段,但我无法将其转换为派生类。 这是我的 Controller 方法和 DTO 类: 方法: @PostMapping(
这更多的是一个理论问题,而不是一个实际问题。 我们有一个分层架构,类似于: UI UI_JavaHandler Backend DTO1 需要比 DTO2 多一点的数据,并且恰好是一个额外的字符串
我在 Wildfly 10.1.0-Final 上使用带有 Java 8 和 Hibernate (5.0.X) 的 Java EE 7,我需要使用投影将 JPQL 查询结果加载到 DTO 中,但我找
有一个建议是transfer objects should not contain object references to other transfer objects .相反,他们应该使用其他传输
我们正在开始一个新项目并正在设计 DTO,这些 DTO 将被注入(inject)到具有行为的相应 POCO 中。然而,我能找到的每个 DTO 示例都只包含值类型,例如: public class Cu
这可能是一个一般的java问题 DTO1 属性1 属性2 属性3 DTO2 属性1 属性2 属性3 属性4 属性5 属性6 属性7 属性8 属性9 属性10 属性11 属性12 我将在屏幕上的 gxt
我在一个项目中遇到了一个问题,并在一个裸测试项目中成功地重现了它。 我有以下 dto: public class AppUserDto { public int Id { get; set;
我正在研究 RESTful API,但在为 API 提供输入的过程中遇到了一些麻烦。 假设我有一个可以像这样获取的“人”资源:api/person/{id}并返回一个这样的对象: public cla
我正在使用 DTO 构建我的第一个应用程序 - 我目前有一个 DTO 用于获取特定对象的数据,另一个不同的 DTO 用于更新(PUTting)数据 - 因为只有少数字段可以从任何客户端更新,我决定为
private void writeData(HSSFSheet sheet) { for (int i = 0; i 并动态获取 DTO 属性值?,我们在Stack Overflo
我正在尝试使用 Jackson 和 Kotlin 将 YAML 文档映射到复杂的 DTO 结构,但似乎在某处遇到了误解。 我正在解析的 YAML 文档是 item_names: - item:
这个问题在这里已经有了答案: How to efficiently create a list of objects inside of a generic method? (2 个答案) 关闭 9
我们将使用 DTO 向表示层发送数据或从表示层发送数据。 我在名为 PostAd 的服务对象上有一个方法,它发布用户输入的广告。 Ad 与另一个名为 AdValues 的对象相关联,该对象包含 Ad
我的应用程序服务中有验证逻辑,用于确定请求的操作是否成功,如果没有,原因。我质疑这是否是代码异味,因为它在应用程序服务中而不是域服务中,它围绕检查域模型是否存在、dto 中的属性是否可以为空等展开。代
我有以下域模型: public class Playlist { public long Id { get; set; } public string Title { get; set
我是一名优秀的程序员,十分优秀!