Pythonにこだわらず全般的な質問ですが、業務でクラスを書くとき困ることがあります。
具体的には、
ターゲットとなるファイルや変数に対して処理を行うクラスを想定したとき、
クラスの多重度をどのように決めるかです。
よく考えることとしては、
Python
11:1 2class xxx(object): 3 def __init__(self, x): 4 self.x = x 5 6 def do_something(self): 7 # self.x に対しての処理 8 91:N 10class yyy(object): 11 def __init__(self): 12 pass 13 14 def fit(y): 15 # y に対する処理
のようなケース何ですが、皆さんは一般的にどの様に使い分けていますか?
私の感覚では、
1:1にすると、インスタンス生成の回数が多くなり、例えばアルゴリズムを複数のデータセットに対して適用する際に、少し冗長な感覚があります。しかし、対象のファイルがわかりやすいので、そういう面では良い面もある様に感じています。
一方、1:Nにすると、fit部分を変えるだけで色々なデータセットに適用できるため、モデルに重点をおいたクラスにできる様に感じています。(例えばsklearnとか)
時と場合によって違うことは重々承知の上で質問しています。
皆さんの感覚と経験を教えていただければとても嬉しく思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。