teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

y

2016/07/22 01:08

投稿

harashow1701
harashow1701

スコア854

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  個人的にはやはり、メソッドを持つオブジェクトが主語であった方が自然なので、vendingMachine.buy()よりはvendingMachine.transactのような動詞の方が自然だと感じますし、employee.pay()よりはemployee.getPaidの方が自然に感じます。
8
8
 
9
- ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースなのでこうとしか言いようがありません。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。
9
+ ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースなのでこうとしか言いようがありません。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。例えば、chicken.split()とか。これであれば、chef.serve("親子丼")というメソッドを実行した時にchefの内部で持つknifeクラスのcutメソッドが呼ばれて、さらにcutの対象であるchicken.split()が実行され〜〜〜のようなことで意味的にも自然だと思います。
10
10
 
11
11
  先に挙げた例に戻ると、employee.pay()のような名前だと従業員が立て替えしておいたようにも解釈出来ますし、罰金でも支払わされたのかとも解釈出来てしまいます。混乱の元になると思うので、「〜された」ことをメソッドとするならば、やはり自然に意味が通る名前にすべきだと思います。
12
12
 

3

r

2016/07/22 01:08

投稿

harashow1701
harashow1701

スコア854

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  個人的にはやはり、メソッドを持つオブジェクトが主語であった方が自然なので、vendingMachine.buy()よりはvendingMachine.transactのような動詞の方が自然だと感じますし、employee.pay()よりはemployee.getPaidの方が自然に感じます。
8
8
 
9
- ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースですし、今回あればchef自体にcutメソッドの実装を持たせていてもコードの量的に良い気もますし、cuttableなインターフェイスを実装したknifeクラスにcutメソッドの実装を持たせてもいと思い。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。
9
+ ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースのでこうとか言ようがありせん。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。
10
10
 
11
11
  先に挙げた例に戻ると、employee.pay()のような名前だと従業員が立て替えしておいたようにも解釈出来ますし、罰金でも支払わされたのかとも解釈出来てしまいます。混乱の元になると思うので、「〜された」ことをメソッドとするならば、やはり自然に意味が通る名前にすべきだと思います。
12
12
 

2

x

2016/07/22 01:04

投稿

harashow1701
harashow1701

スコア854

answer CHANGED
@@ -8,4 +8,6 @@
8
8
 
9
9
  ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースですし、今回の例であればchef自体にcutメソッドの実装を持たせていてもコードの量的に良い気もしますし、cuttableなインターフェイスを実装したknifeクラスにcutメソッドの実装を持たせてもいいと思います。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。
10
10
 
11
+ 先に挙げた例に戻ると、employee.pay()のような名前だと従業員が立て替えしておいたようにも解釈出来ますし、罰金でも支払わされたのかとも解釈出来てしまいます。混乱の元になると思うので、「〜された」ことをメソッドとするならば、やはり自然に意味が通る名前にすべきだと思います。
12
+
11
13
  この質問、他の方の回答がすごい気になります!

1

2016/07/22 01:02

投稿

harashow1701
harashow1701

スコア854

answer CHANGED
@@ -6,4 +6,6 @@
6
6
 
7
7
  個人的にはやはり、メソッドを持つオブジェクトが主語であった方が自然なので、vendingMachine.buy()よりはvendingMachine.transactのような動詞の方が自然だと感じますし、employee.pay()よりはemployee.getPaidの方が自然に感じます。
8
8
 
9
+ ただ、これだと単に命名の話ということになってしまうのですが、結局、どういった設計がより適しているかはケースバイケースですし、今回の例であればchef自体にcutメソッドの実装を持たせていてもコードの量的に良い気もしますし、cuttableなインターフェイスを実装したknifeクラスにcutメソッドの実装を持たせてもいいと思います。chiken自体に持たせるのであれば、やはり前述の通り、cutだと意味的に不自然感が半端ないので、chickenが保持する内部データの変化を表すような名前でメソッド名を考えてあげると良いのかなと思います。
10
+
9
11
  この質問、他の方の回答がすごい気になります!