2013-04-27 4 views
1

В последнее время я боролся с именами методов в ООП, и я решил разобраться в этом. Для этой цели я пытаюсь классифицировать имена методов с точки зрения естественного языка. До сих пор я понял, эти категории: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() 

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

Итак, мой вопрос в том, согласны ли вы с этой классификацией и считаете ли вы, что имена в третьей и четвертой категориях являются хорошими или плохими в отношении парадигмы ООП.

+0

Вероятно, он будет закрыт. Думаю, и я понимаю, почему. Я просто попытался получить некоторую обратную связь по этой причине, я не настолько опытен в ООП. – clime

+1

Если бы вы упоминали конкретный язык, вы, скорее всего, могли бы задать этот вопрос в рамках SO, но я предполагаю, что сейчас немного поздно. –

+1

У этого есть шанс выродиться в квазирелигиозную дискуссию, поэтому, скорее всего, она будет закрыта до того, как это произойдет. Имена имен Verb-Noun, по-видимому, предпочтительны для методов действий, хотя иногда я использую Noun-Verb для управления сортировкой, несмотря на то, что на английском языке немного неудобно. В Интернете есть много руководств по стилю. –

ответ

2

Я думаю, что вы ищете style guide или coding standard.

например.

PEP-8 (общий называют Python стиль руководство)

Google JS styleguide

Сказав это, имо это лучше быть последовательным на протяжении всего кодирования, чем смешивание в стиль руководства (придерживаться того, что вы начали с или рефакторинг всего). Наличие вашей собственной схемы в порядке, но лучше потратьте время на производительность.

+0

хорошо, это описывает, следует ли мне использовать camelCase или подчеркивания и тому подобное, не так ли? Не могли бы вы указать на определенную часть «Как сформулировать имена методов» или что-то в этом роде? – clime

+1

@clime все зависит от языка, который вы собираетесь использовать. –

+0

Вы должны были выделить лучшие части этих ссылок. В результате в 2016 году Google Styleguide указывает на ошибку, и PEP-8 забрасывает меня индексом, который я не знаю, куда идти. – gustavohenke

Смежные вопросы