Компонентно-орієнтована архітектура в Visual C # (Sharp)

До теперішнього часу ми вивчали основи мови С # Володіючи даними основами, ви можете писати функціональні додатки, що використовують класи, обєкти, інтерфейси й спадкування У цьому розділі ми розглянемо метод программіранія, який деякі розробники називають конструкційним Конструіонное програмування застосовується, коли потрібно вирішити не робоча проблем, а проблему, повязану із створенням програми

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

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

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

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

щоб освітлення було включено тільки тоді, коли воно потрібно Для цього вам буде потрібно контролер і керовані ним пристрою

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

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

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

Стосовно до програмування, ядро ​​є тренером, а маніпульовані зовнішні реалізації – гравцями При розробці інтерфейсів, які будуть реалізовані іншими функціональними компонентами, ми не можемо спостерігати за розробляють їх програмістами, з тим, щоб вони робили все так, як ми вважаємо за потрібне Дана ситуація вимагає довіри, але нам також потрібно реалізать такий режим програмування, при якому ми можемо вважати, що прраммісти виконуватимуть покладені на них завдання належним чином Це не має нічого спільного з індивідуальними можливостями цих програмістів Я маю на увазі, що ми повинні бути впевненими в тому, що навіть якщо хто-небудь з них і зробить якусь помилку, наше ядро ​​буде продовжувати працювати долим чином

Памятайте, що при реалізації ядра ми реалізуємо контролер і розробляємо Стрега додатки, але не маємо відношення до всіх зовнішніх реалізаціям

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

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

*

*