最近、私は 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()
名詞はデータ用に予約しておくべきだと思うので、私はこれらがあまり好きではありません。そして、それらは単純に最初のカテゴリーに変換できます。
したがって、私の質問は、この分類に何らかの形で同意するかどうか、および OOP パラダイムに関して 3 番目と 4 番目のカテゴリの名前を良いと考えるか悪いと考えるかということです。