I'm new to design patterns and wonder what is the best way to go about converting one DTO into another.
In order to increase performance to the highest extent I use stored procedure which joins several tables (e.g. entries
, definitions
, examples
, vocabularies
) and returns the full set of data with over 40 columns - this data is required to re-create a compound DTO.
So I end up having a separate DTO (GetEntryDbDto
) with over 40 fields and I manually map response from DB into it.
The second DTO is structured so it has nested collections.
Right now I keep the code that converts one DTO into another in a factory.
public class EntryFactory
{
public static EntryDto Get(DbDataReader reader)
{
List<GetEntryDbDto> dbDtos = GetEntryDbDtoFactory.Get(reader);
...
return entryDto;
}
...
The object structure is as follows:
EntryDto
contains collection of Definitions
- DefinitionDto[]
.
Each DefinitionDto
has Examples
collection - ExampleDto[]
.
I haven't introduced any interfaces for the two above-stated classes, because they don't share common properties.
Is there a better way to refactor it using different design pattern?
Aucun commentaire:
Enregistrer un commentaire