Відділення об’єктів даних від об’єктів дії в Visual C # (Sharp)

Іншим рішенням проблеми серіалізациі буде розробка декількох обєктів даних, призначених єдино для сериализации і звернення до даних Такий підхід корисний для двійковій сериализации, т к таким чином можна бее ефективно вирішити проблему управління версіями Далі наводиться приклад вихідного коду, що реалізує даний підхід:

[Serializabie]

class MyObject2 {

}

class Doer {

private MyObject2 _object private int _networkIdentifier

}

Клас Doer не має атрибута сериализации і тому не буде серіалізірован але він посилається на клас Myobject2 Член даних, ідентифікує мережу, був пемещен з класу MyObject2 в клас Doer В результаті клас MyObject2 НЕ соді ніяких тимчасових елементів і вимагає мінімального уваги з боку програміста

ПРИМІТКА

Дл я простоти, при серіалізациі я віддаю перевагу розділяти обєкт и данни х і обкти дій, використовуючи дл я цього член даних Цей підхід не так обєктно-

орієнтований, як інші методи програмування, але коли маєш справу з потоки даних декількох типів, найпростіше створити постійний і легко підтримувати потік даних

У користувацьких типах завжди необхідно реалізовувати методи Equals про і GetHashCodeО Ці два методи використовуються бібліотекою API NET для порівнювання і маніпулювання примірників у списку або колекції У прикладі для цієї глави було просто випадковістю, що список строкових типів правильно виконав обробку Якби TextProcessor використовував тип Ticket, тоді метод Equals () списку, застосовуваний для виявлення повторюваних дат, не працював би належним чином Стандартні варіанти методів Equals () і GetHashCode () не реалізовані належним чином Але це не є недоглядом розробників бібліотеки API NET, а скоріше констатацією факту, що вони не можуть знати струуру обєкта і обставин, що роблять тип унікальним

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*