Иллюстрированный самоучитель по Architecture .NET

Объектно-ориентированное программирование на управляемом C++

  • Обзор основных понятий объектно-ориентированного программирования. Объекты.

    В предыдущей главе были наложены основы программирования на управляемом C++. Учитывая ваш богатый опыт работы с C++ было охвачено много материала. В этой главе мы изменим темп вместо того, чтобы осваивать новый материал потратим больше времени на углубление понимания объектно ориентированной стороны управляемого С++ в частности, абстракции и наследования.
  • Классы

    Класс объединяет все объекты с одинаковыми структурой и поведением. Класс дает возможность создавать новые однотипные объекты. Каждый объект является экземпляром какого-то класса. Процесс создания объекта данного класса называется созданием экземпляра.
  • Полиморфизм

    Давайте рассмотрим задачу создания платежной ведомости для разных категорий служащих. Зарплата для разных категорий служащих может начисляться по-разному. Например, некоторые оплачиваемые служащие получают установленный заработок.
  • Проект "Бюро путешествий Acme"

    Бюро путешествий Acme предоставляет несколько видов услуг: резервирование гостиничного номера, авиабилета и автомобилей напрокат. На простом примере приема заказов на резервирование, который и далее используется в книге, проиллюстрируем характерные черты .NET.
  • Проектирование абстракций

    Поскольку на самом деле нам нужно реализовать не только систему резервирования гостиничных номеров, но и систему резервирования других ресурсов, включая резервирование авиабилетов и автомобилей напрокат, необходимо тщательно продумать механизм абстракции.
  • Логика базовых классов

    Базовый класс Broker (Брокер) не только является абстрактным брокером, который резервирует объекты, но также содержит общую логику регистрации резервирований и список резервирований. Если реализовать эту логику в абстрактном (базовом) классе, то это сделает его еще более полезным, так как значительно упростит реализацию резервирования в производных классах.
  • Проектирование инкапсуляции. Наследование в управляемом C++.

    В данной реализации класса Broker (Брокер) все списки представлены в виде массивов. Поскольку такая реализация может не быть (и на самом деле не будет) сохранена в последующих версиях, мы не станем рассматривать функции работы с массивами или обращаться к элементам с помощью индексов.
  • Основные принципы наследования

    Если вы используете механизм наследования, учитывайте все абстракции вашей объектной модели и те из них, которые можно будет повторно использовать, поместите в базовые классы как можно более высокого уровня.
  • Реализация примера "Бюро путешествий Acme". Запуск программы примера.

    С помощью абстрактных классов Reservable (Резервируемый объект, ресурс), Reservation (Резервирование) и Broker (Брокер) можно легко реализовать систему резервирования конкретного ресурса, например гостиничного номера. На рис.
  • Класс HotelReservation. Класс HotelBroker.

    Класс HotelReservation– это простой класс, который является производным класса Reservation (Резервирование). Его код находится в файле hotelbroker.h. Этот класс включает в себя некоторые дополнительные общедоступные поля и свойство ArrivalDate (Дата прибытия), которое несет больше конкретного смысла, чем поле Date (Дата) базового класса.
  • Класс Customers (Клиенты). Пространство имен.

    Нельзя реализовать систему резервирования, не смоделировав клиентов, которые ее используют. Класс Customers (Клиенты), который находится в файле customers.h, поддерживает список объектов типа Customer (Клиент). Этот список также представлен в виде массива.
  • Класс TestHotel. Резюме.

    Класс TestHotel, который находится в файле TestHotel.h, содержит интерактивную программу для испытания классов, связанных с резервированием гостиницы, и классов клиентов, поддерживающих описанные ранее команды.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.