回答編集履歴
3
追記
answer
CHANGED
@@ -8,4 +8,22 @@
|
|
8
8
|
モジュールは「他に委ねる」methodは汎用性があり、他のテーマにも使える
|
9
9
|
という感じでしょうか。
|
10
10
|
ただ、引用している「モジュールでの解き方」は参考にするようなものとは思えません。不必要に複雑。
|
11
|
-
この問題はクラスを作ることもなく、1行野郎です。
|
11
|
+
この問題はクラスを作ることもなく、1行野郎です。
|
12
|
+
|
13
|
+
追記
|
14
|
+
全部の例を読んで考察するほどのテーマではないと思うので、たまたま開いた「電話帳作成問題」について。
|
15
|
+
これも含めあのようなサイトでは自動で評価します。何も指定しないと呼び方がまちまちになり自動評価にかけるのが出来ないので、プログラムをどう呼ぶかを規制します。「電話帳作成問題」では`NameIndex.create_index(names)`と呼ぶよ、ということを宣言しています。
|
16
|
+
で、
|
17
|
+
classで作る以上、入り口はclassメソットにせざるを得ません。実装を全部classメソッドで書けと言っているわけではないですし、もしそうしたら object指向でのプログラムとしては減点されるでしょう。
|
18
|
+
私もこういう書き方をすることはよくあります。
|
19
|
+
`class CsvIo
|
20
|
+
def self.create(data)
|
21
|
+
new(data).make
|
22
|
+
end
|
23
|
+
def make
|
24
|
+
ごちゃごちゃ
|
25
|
+
end
|
26
|
+
end`
|
27
|
+
みたいな感じ。classメソッドでインスタンスをつくる。実際の仕事はインスタンスが行う。
|
28
|
+
|
29
|
+
「methodは汎用性があり、他のテーマにも使える」 の意味は、組み込まれているmodule Mathのメソッドの使い方を見ればわかるのでhあないか、と。
|
2
typo修正
answer
CHANGED
@@ -7,5 +7,5 @@
|
|
7
7
|
クラスは「自分で解かせる」methodは問題固有で他に流用は考えない
|
8
8
|
モジュールは「他に委ねる」methodは汎用性があり、他のテーマにも使える
|
9
9
|
という感じでしょうか。
|
10
|
-
ただ、引用
|
10
|
+
ただ、引用している「モジュールでの解き方」は参考にするようなものとは思えません。不必要に複雑。
|
11
11
|
この問題はクラスを作ることもなく、1行野郎です。
|
1
追記
answer
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
クラスメソッドとして実装 ですと、クラスを作る意味が殆ど無い、トップレベルでメソッド定義したほうが(このくらいの複雑さの少ない)問題ならよいと思います。
|
5
5
|
|
6
6
|
クラスかモジュールか、は考え方の違いでどちらが良いか悪いかということは余りないと思います。
|
7
|
-
クラスは「自分で解かせる」
|
7
|
+
クラスは「自分で解かせる」methodは問題固有で他に流用は考えない
|
8
|
+
モジュールは「他に委ねる」methodは汎用性があり、他のテーマにも使える
|
9
|
+
という感じでしょうか。
|
8
10
|
ただ、引用指定す「モジュールでの解き方」は参考にするようなものとは思えません。不必要に複雑。
|
9
11
|
この問題はクラスを作ることもなく、1行野郎です。
|