2016-04-04 10 views
-2

おそらく - ご意見・ベースの質問、しかし:Classes - horriblenessまたはacceptable?

この理由:

def func1(): 
    pass 
def func2(): 
    pass 

class BigClass: 
    def method1(self): 
     pass 
    def method1(self): 
     pass 
    def method1(self): 
     pass 

は悪いですが、この:

class c1: 
    def func1(self): 
     pass 
class c2:  
    def func2(self): 
     pass 

class BigClass: 
    def method1(self): 
     pass 
    def method1(self): 
     pass 
    def method1(self): 
     pass 

が良いのですか?

または、それは許容される方法ですか?

私にとっては、ちょっと見えます...構造化されていない、多分?私。 - いくつかの小さなfunctions()を別として大きいClasses。特に、クラスにはパラメタのリストがあり、クラスには通常、1つ2つの親の名前があります。

しかし、これの本当の意味はどうですか? 「より深い」データカプセル化によるセキュリティの強化?他に何か?

全く違いはありませんか?

+3

それはすべてあなたが何をしているかによって異なります。あなたはクラス内のすべてを持つ必要はありません。最初の例で何が間違っているのか分かりません。それは悪いことをどこで読んだのですか? – idjaw

答えて

2

クラスの代わりに単純な関数を使用しても問題はありません。だから私が最初に言及したコードは本質的に悪いとは思わない。この問題は、関数が複雑で複雑になった場合にのみ発生し、コードをより多くの関数に組み立てて読みやすくする必要があります。しかし、コードの可読性を低下させる引数を使用してデータを共有する必要がある多くの機能を持つことになります。それはあなたのコードをクラスに構造化することがより理にかなっている時です。

これはオブジェクト指向プログラミングの利点の1つに過ぎません。私には他にもたくさんの人がいると信じてください。私は多くの人々がPythonコードがオブジェクト指向である必要はないと述べていますが、これは "JAVAish"なアプローチです。しかし、何ももっと間違っている可能性はありません。オブジェクトオリエンテーション(または他のプログラミングパターン)は、特定の言語とは関係ありません。私は、OOPは常に問題のための最良の解決策ではないことに同意しますが、ほとんどの場合、それが問題です。

関連する問題