Шаг 129.
Объекты и модули

    На этом шаге мы рассмотрим взаимосвязь объектов и модулей.

    Разделенность описания классов и реализации объявленных в них методов гармонично соответствует оформлению в виде модуля, у которого также разделяется описание заголовков экспортируемых процедур в интерфейсном разделе и описание кода этих процедур в разделе реализации.

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

    Описание же реализации методов идеально соответствует размещению в разделе implementation, так как по самой сути объектов требуется, чтобы конкретика работы их методов была скрыта от пользователя. В целом, общие принципы области видимости переменных, принятые для модулей, распространяются и на объекты: в разделе реализации можно использовать все, что описано в интерфейсном разделе.

    Для демонстрации сказанного приведем примера класса TPosition, описывающего позицию шахматной доски:

unit ChessMod;
interface
Type
  { Экспортируемые типы и классы. } 
  TColumns = 'а'..'h'; 
  TRows = 1..8;
  { Позиция на доске. } 
  TPosition = class
     private
        Column : TColumns; 
        Row : TRows;
     public
        function  GetColumn : TColumns; 
        function GetRow : TRows; 
  end;
implementation
{ Реализация методов. }
  function TPosition.GetColumn : TColumns; 
  begin
    GetColumn := Column; 
  end;
  function TPosition.GetRow : TRows; 
  begin
    GetRow := Row; 
  end;
end.

    На следующем шаге мы сравним старую и новую ООП-модель .




Предыдущий шаг Содержание Следующий шаг