对于其价值(在C# .net中发展起来,但希望这些原则仍然有助于你)我界定了我用来在企业和数据层之间交换数据的各类类型(DTO s);我每个领域/实体都有一个以上类型。 这些课程被定义为简单课程。
每一项任务都考虑到具体任务,例如:
- I have a light-weight type designed to populate list views (lots of "rows" but not many "columns"). I also have a corresponding collection type that holds any number of these.
- I have a "big" get copy which usually has all the properties of the entity in question - but for only one instance of it. I may have more than one of these depending on the size and complexity of the entity vs the cases of use; and also depending on whether you want to return all the data associated with an instance of the entity straight away, or lazy-load some on later requests.
- I also usually have separate "save" (new) and "update" types for the entity.
Each type is designed to hold only the information relevant for a given task.
For example the "big" will return the date last modified, but I don t expect that in my save and update types because I populate those in the data access layer.
而且,据我所知,这些类型存在于共同的大会之中,因此可以在任何层次之间重新使用,而不仅仅是在企业和数据层之间。
<斯特隆>建筑 适合
这种做法没有任何特殊意义,它有自己的利弊;它们究竟是什么,以及它们如何影响你,取决于许多事情——我猜测你的笑情会有所不同——但多年来肯定对我很有帮助。
人们往往对“关切的分离”产生混淆,这确实是明智的举动;这涉及跨组织,因为它们是在各层(以及服务、部件等)之间交换的,因此,总是在什么地方划线上出现模糊。
我采取的做法是,如果在哪一级之间交换某种信息是合适的,那么这种信息可能适合在任何层次之间交换——因此无法让所有人获得? 如果你刚刚通过信息,也就不必重新提供信息。
在复杂性方面,有两种处理方式:
- Use a verbose / human readable naming convention for all; the types so you know what things are; it doesn t matter how many there are - that s what intelli-sense (& docs) are for. The more intuitive the better.
- KISS - keep things simple if you can; you ll have to balance sensible reuse and the Single Responsibility Principle (SRP).
www.un.org/Depts/DGACM/index_spanish.htm 您是否创立了一个主要实体复杂财产的DTO?
我发现,出于以下两个原因,我自称是:
- There s data I know I need to expose (push), and the design of the DTO is a no-brainer: it s driven by the data I want to expose.
- Pull: the consumer know s what it wants, and the DTO is designed to meet those needs.
由于它们都是在共同大会中确定的,没有一个组成部分是“拥有的”,它有助于迫使你从领域角度而不是从构成部分一来思考;这在一定程度上会影响目的地组织的设计(平衡再利用与SRP)。
在这两种情况下,DTO的所作所为可以具体针对特定需要或通用需要;例如,只有直觉和体力的DTO,并不常见,它把你用来寄出退缩名单的那类事情推上。
我寄回的大多数DTO藏书(从DAL到BL)是特定的概念,而不是通用的概念。 我通过我提供的建筑商执行有关这些规则的非常基本的规定:需要每个动力。 我不敢肯定,这是否回答了你的问题“你如何管理集会和鉴定”。