Серіалізований великий об’єкт (шаблон проєктування)
Перейти до навігації
Перейти до пошуку
Ця стаття не має інтервікі-посилань. |
Серіалізований великий об’єкт (англ. Serialized LOB) — шаблон проєктування, який пропонує зберігати великий граф об'єктів в одному полі.
В об'єктній моделі зазвичай присутня взаємодія багатьох об'єктів. Такі об'єкти важко зберігати в базі даних. Крім цього, вони не мають посилань на зовнішні таблиці.
У такому разі, даний граф об'єктів можна серіалізувати та зберегти у вигляді одного значення — LOB (large object).
Нехай у користувача є можливість довільно налаштувати вигляд сторінки. Вигляд сторінки зберігається у вигляді графу об'єктів.
public class Page
{
public IContainer<IComponent> Components { get; set; }
}
class Button : IComponent
{
public int TileX { get; set; }
public int TileY { get; set; }
public strig Title { get; set; }
}
class Label : IComponent
{
public int TileX { get; set; }
public int TileY { get; set; }
public strig Text { get; set; }
}
У сховищі таку структуру зберігатимемо за допомогою єдиного поля.
class PageStructureTable
{
public int Id { get; set; }
public string PageJson { get; set; }
}