Відображення залежних об'єктів (шаблон проєктування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Відображення залежних об'єктів (англ. Dependent Mapping) — шаблон проєктування, який пропонує помістити код для відображення залежної сутності у код відображення основної сутності.

Опис[ред. | ред. код]

Деякі сутності існують лише в контексті інших. Наприклад, пісні завантажуються та оновлюються лише разом з альбомом. Якщо вони не використовуються іншими сутностями можна спростити процес відображення, помістивши відображення пісень в той самий клас, що реалізує відображення альбомів.

Таким чином один клас для відображення міститиме логіку для двох сутностей.

Реалізація[ред. | ред. код]

class Album
{
        public string Title { get; set; }
        public ICollection<Track> Tracks { get; set; }
}

class Track
{
        public string Title { get; set; }
}

class AlbumMapper
{
        public Album Map(AlbumTable albumTable)
        {
                return new Album
                {
                        Title = albumTable.Title,
                        // відображення залежної сутності знаходиться у класі відображення основної сутності
                        Tracks = albumTable.Tracks.Select(t = new Track
                        {
                                Title = t.Title,
                        }),
                };
        }
}

Джерела[ред. | ред. код]