Именование методов
Для именования методов абстракций предлагаются следующие правила:
Имена методов в комбинации с их аргументами должны читаться подобно фразам английского языка.
функции, возвращающие логические результаты, должны использовать предикативные предложения.
Именная ассоциация должна использоваться для методов, которые имеют более одного параметра.
Аргумент, который обозначает обрабатываемый методом экземпляр объекта, не должен называться также как абстракция к которой он принадлежит.
Вместо этого, он должен использовать более общее имя, такое как: 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; |