Architecture Net

       

Проектирование инкапсуляции


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

_property int get_NumberUnits()
{
return nextUnit;
}
_property int get_NumberReservations()
{
return nextReservation;
}

Представление простых полей Reservationld, Unit Id, Date (Дата) и NumberDays класса Reservation (Резервирование) не меняется, следовательно, мы не будем инкапсулировать эти поля. Потом, если потребуется, мы можем реализовать некоторые из этих полей как свойства, не изменяя при этом коа клиента. Однако в данный момент, и в дальнейшем, мы просто будем использовать общедоступные поля.

public _gc _abstract class Reservation
// сборщик мусора - абстрактный класс Резервирование
{
public:
int Reservationld;
int Unitld;
DateTirie Date; // Дата
int NumberDays;
static private int nextReservationld = 1;
Reservation() // Резервирование
{
Reservationld = nextReservation!d++;
}
};

CompEbook.ru Железо, дизайн, обучение и другие



Содержание раздела