ВУЗ:
Составители:
Рубрика:
Cust2.City := ‘Anytown’;
Cust2.State := ‘NY’;
Cust2.Zip := ‘11111 - 2222’;
Cust2.LastOrder := ‘ ‘;
. . .
end;
Единственно важное отличие этого фрагмента от предыдущего заключено в том,
что теперь идет ссылка на Cust2 и соответствующим полям приписываются другие
значения.
Обычным способом работы с повторяющимися операторами, подобными
приведённым, является оформление их в виде подпрограмм и передача конкретного
экземпляра переменной и её полей через список параметров. Вы можете
инициализировать экземпляр клиента за один шаг, используя подпрограмму Initialize,
определённую и реализованную, например, следующим образом:
Procedure Initislize
(
var Cust : RCustomer;
const FirstName,
LastName,
Street,
City,
State,
Zip :string
);
begin
Cust.FirstName :=FirstName;
Cust.LastName :=LastName;
Cust.Street :=Street;
Cust.City :=City;
Cust.State :=State;
Cust.Zip :=Zip;
Cust.LastOrder := ‘ ‘;
end;
Обратите внимание, что Cust является параметром var, и любые изменения его
значения будут переданы фактически переменной, указанной при вызове процедуры.
Все поля формального параметра Cust передаются в подпрограмму как аргументы.
Только переменная LastOrder инициализируется как пустая строка, сообщая о
том, что от клиента не поступило ещё ни одного заказа. Вводя подпрограмму, Вы
достигаете большей инкапсуляции (скрытие реализации объекта от внешних модулей)
деталей инициализации.
Теперь Вы можете повторно использовать процедуру Initialize для
инициализации различных переменных типа RCustomer. Обратите внимание на то, как
изменяется сам подход к инициализации при превращении набора операторов
программы в процедуру - от мелких деталей инициализации, которыми Вы должны
заниматься каждый раз при инициализации переменной типа RCustomer, Вы
переходите к более обобщённой логике инициализации, опуская при этом подробности.
Типичный вызов процедуры Initialize выглядит следующим образом:
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »