Ада-95. Компилятор GNAT

       

Именование методов


Для именования методов абстракций предлагаются следующие правила:

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

  • функции, возвращающие логические результаты, должны использовать предикативные предложения.

  • Именная ассоциация должна использоваться для методов, которые имеют более одного параметра.

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

    Вместо этого, он должен использовать более общее имя, такое как: Affecting, Self, This ...

    (примечание: это правило обязательно используется только при именном ассоцировании параметров).

    Следующий пример демонстрирует использование этих правил:

    Insert (The_Item => An_Apple, Before_Index => 3, Into => The_Fruit_List);

    Merge (Left => My_Fruit_List, Right => The_Citrus_Fruits);

    Is_Empty (The_Queue); -- используется позиционная ассоциация

    Следует учитывать, что при несоблюдении правила 4 может быть нарушена читабельность наследуемых операций.

    Рассмотрим следующий случай, где правило 4 нарушено:

    package List is

    . . . procedure Pop (The_Item : out List.Item; From_List : in out List.Object); -- используется From_List -- вместо From end List;

    package Queue is

    . . . type Object is new List.Object; -- Queue.Object наследует -- операции List.Object end Queue;

    with List; with Queue; procedure Main is

    begin

    . . . Queue.Pop ( The_Item => My_Item From_List => The_Queue); -- не очень "чисто": -- имя ассоциации указывает список на (List), -- а аргументом является очередь (Queue) ?! end Main;



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