Курсовая работа по ООП

  • 06 мая 2014 г.
  • 4832 Слова
1. Аннотация
В данной курсовой работе была реализована модель железнодорожного вокзала. Программа разработана на языке C#. В качестве интерфейса выбрано консольное приложение. Принцип работы программы заключается в использовании трех китов ООП, паттернов проектирования и взаимодействии объектов между собой с помощью событий. Программа в реальном времени уведомляет пользователя о происходящем нажелезнодорожном вокзале, а также записывает все сообщения в текстовый файл.
2. Постановка задачи
Разработать модель железнодорожного вокзала.
Включает: пассажирский поезд с запасами воды и продуктов, ж/д пути (до 4-х основных и запасной); пассажиры, ремонтно-технические работники, диспетчеры, маневровый локомотив.
Пояснения: Основной объект - поезд принимается на станцию на определенныйпуть, если он свободен, занимает его и обслуживается: часть пассажиров выходит, новые садятся (пассажиров можно считать полем класса поезд), ремонтно-технической бригадой проверяется техническое состояние вагонов и локомотива, производится заправка водой и продуктами; в случае необходимости по приказу диспетчера поезд маневровым локомотивом переводится на другой путь. Поезд отправляется и освобождаетпуть.
3. Используемые паттерны проектирования
Singleton — Одиночка

Одиночка (англ. Singleton) в программировании — порождающий шаблон проектирования.
Цель
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Существенно то, что можно пользоваться именно экземпляром класса, так как при этом во многих случаях становится доступной болееширокая функциональность. Например, к описанным компонентам класса можно обращаться через интерфейс, если такая возможность поддерживается языком.
Плюсы
Контролируемый доступ к единственному экземпляру;
Уменьшение числа имён;
Минусы
Глобальные объекты могут быть вредны для объектного программирования, в некоторых случаях приводя к созданию не масштабируемого проекта.
Использование вработе
Данный паттерн реализуют классы «Железнодорожный вокзал» и «Маневровый локомотив», так как они нужны нам только в одном экземпляре.

Lazy initialization — Ленивая инициализация

Отложенная (ленивая) инициализация (англ. Lazy initialization). Приём в программировании, когда некоторая ресурсоёмкая операция (создание объекта, вычисление значения) выполняется непосредственно перед тем, как будетиспользован её результат. Таким образом, инициализация выполняется «по требованию», а не заблаговременно. Аналогичная идея находит применение в самых разных областях: например, компиляция «на лету» и логистическая концепция «Точно в срок».
Частный случай ленивой инициализации — создание объекта в момент обращения к нему — является одним из порождающих шаблонов проектирования.
ДостоинстваИнициализация выполняется только в тех случаях, когда она действительно необходима;
ускоряется начальная инициализация.

Недостатки
Невозможно явным образом задать порядок инициализации объектов;
возникает задержка при первом обращении к объекту.
Использование в работе
Данный паттерн реализуется в комбинации с паттерном «Singleton», потому что их очень просто совместить и, так как железнодорожныйвокзал и, тем более, маневровый локомотив, будут вызваны не сразу, это повысит производительность.

Observer — Наблюдатель

Наблюдатель, Observer — поведенческий шаблон проектирования. Также известен как «подчинённые» (Dependents), «издатель-подписчик» (Publisher-Subscriber).
Назначение
Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состоянияодного объекта все зависящие от него оповещаются об этом событии.
Область применения
Шаблон «наблюдатель» применяется в тех случаях, когда система обладает следующими свойствами:
- существует, как минимум, один объект, рассылающий сообщения
- имеются не менее одного получателя сообщений, причём их количество и состав могут изменяться во время работы приложения....