Створення примірників класів PublicRoom і PrivateRoom програми управління освітленням в Visual C # (Sharp)

Як було описано в попередньому розділі, при розробці компонентів інтерфейси слід тримати окремо від реалізацій Це дає нам гнучкість у модіфіціровіі реалізації в збірки, не вимагаючи перекомпіляції свого коду користувачами збірки

Для створення примірників реалізацій нам потрібна фабрика, що точно так само отнітся до музею і його реалізаціям PrivateRoom і pubiicRoom Але конструкційний мод, який збирає будівля з МОЖЛИВИХ комбінацій PrivateRoom І PubiicRoom, буде наданий разом з музеєм Конструкційний метод корисний тим, що він зумовлює стандартне будівля, з усіма кімнатними угрупованнями та коата, вставленими належним чином

ПРИМІТКА

Конструкційний метод можна розглядати як спосіб створення предопределеой структури, таким чином, позбавляє користувача від необхідності робити це самим Конструкційний метод всього лише створює структуру, якій впоследс можна маніпулювати для тонкої настройки

Далі наводиться код для реалізації фабрики музею, яка додається в про-

ек т Museum:

public static class FactoryRooms {

public static IRoom CreatePrivateRoom() { return new PrivateRoom()

}

public static IRoom CreatePublicRoom() { return new PubiicRoom()

}

public static LightingController CreateBuilding() { LightingController controller = new LightingController() object publicAreas =

controllerAddRoomGrouping(&quotpublic viewing areas&quot) object privateAreas =

controllerAddRoomGrouping(&quotprivate viewing areas&quot) controllerAddRoomToGrouping(publicAreas, new PublicRoom()) controllerAddRoomToGrouping(privateAreas, new PrivateRoom)) return controller

}

}

Реалізація має три методи: CreatePrivateRoom (), CreatePublicRoom () і Creat-ingBuilding () To, ЩО метод CreatePrivateRoom () І клас PrivateRoom мають схожі назви, є чистою випадковістю Метод з таким же ефектом МОЖНА було б назвати CreateNonControlledRoomO Методи CreatePrivateRoom () і CreatePubl icRoom () призначені для визначення ідентифікаторів методів, які користувачі можуть розуміти Дані методи повинні повертати екзеляр IRoom

Метод createBuiiding () є конструкційним методом і повертає екзеляр LightingController Повернення примірника LightingController є прийнятним, тому що цей тип має глобальну область видимості і може служити в якості основи для конструкційного методу У реалізації конструкційного методу створюються екземпляри кімнатних угруповань і кімнат, які добаяютс я До екземпляр у LightingController Ет про роботу, яку Конструкційно метод виконує замість користувача Крім цього, застосування конструкційного методу дозволяє уникнути створення структур будівлі з грубими помилками в них

ПРИМІТКА

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

Джерело: Гросс К С # 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>

*

*