В последнее время я боролся с именами методов в ООП, и я решил разобраться в этом. Для этой цели я пытаюсь классифицировать имена методов с точки зрения естественного языка. До сих пор я понял, эти категории:OOP: классификация методов метода
1] команды:
elem_list.append('x')
bank_account.deposit(50)
game.get_score()
append
, deposit
, get_score
являются команды здесь. Вы просите объекты что-то сделать (или попросите переводчика сделать что-то с ними - зависит от точки зрения). Эти методы содержат глагол в различных формах: только глагол, глагола + существительное, глагола + прилагательное + существительное, иногда существительное + глагол (для дальнейшего уточнения значения глагола). Команды, вероятно, являются наиболее распространенными именами.
2] запросов:
connection.is_open()
snake.is_dead()
window.can_hide()
Это не так часто. Их форма - пассивный глагол + прилагательное (эта форма может быть точно описана лучше, я не являюсь родным английским парнем). В принципе, здесь вы запрашиваете состояние объекта.
Ниже приведены категории, я не уверен, потому что я действительно не видел много имен методов, как, что (это может быть мой ограниченный опыт, хотя):
3] Объявления:
button.widget_selected(event)
window.screen_changed(screen)
Здесь вы сообщаете объект, что-то случилось, и ожидайте его выполнения. Этот метод в основном является обработчиком событий. Форма обычно что-то вроде существительное + прошедшее-время-глагол. Я не уверен в этой категории, потому что вы можете преобразовать ее в команду, просто добавив глагол, например. handle
: button.handle_widget_selected(event)
, который кажется более естественным при вызове метода.
4] существительных имена
snake.crash_animation()
game.introduction()
Я не очень люблю их, потому что я думаю, что имена должны быть зарезервированы для данных. И они могут быть преобразованы в первую категорию просто.
Итак, мой вопрос в том, согласны ли вы с этой классификацией и считаете ли вы, что имена в третьей и четвертой категориях являются хорошими или плохими в отношении парадигмы ООП.
Вероятно, он будет закрыт. Думаю, и я понимаю, почему. Я просто попытался получить некоторую обратную связь по этой причине, я не настолько опытен в ООП. – clime
Если бы вы упоминали конкретный язык, вы, скорее всего, могли бы задать этот вопрос в рамках SO, но я предполагаю, что сейчас немного поздно. –
У этого есть шанс выродиться в квазирелигиозную дискуссию, поэтому, скорее всего, она будет закрыта до того, как это произойдет. Имена имен Verb-Noun, по-видимому, предпочтительны для методов действий, хотя иногда я использую Noun-Verb для управления сортировкой, несмотря на то, что на английском языке немного неудобно. В Интернете есть много руководств по стилю. –