2011-03-25 49 views
2

これは重複している可能性がありますが、私はうまくいけないことを見たことがないのでそうではありません。基本的には、コードの断片を別々のメソッドとオブジェクトに分割するときの経験則を見たことはありません。誰かが良いルールを持っていますか?メソッドとオブジェクトを使用する場合

答えて

4

私は、クラスの境界と階層を設計するためにthis article(butunclebob.com、S.O.L.I.D. OOPの原則)が啓発されていることを発見しました。ほとんどの常識ではありますが、達成したい目標に名前を付けることは、経験を通してデザインの「良い」性格を感じるまで役立ちます。

+0

これは私が探していたものです。行くべきガイドラインの簡単なセット。ありがとう! –

1

このルールは、次のようになります。

Q:これをメソッドとオブジェクトに分割する必要がありますか?

A:はい。

+0

間違いなく、もう少し期待していました:P –

+0

完全に正しい!あなたが尋ねなければならないならば、答えははいです。 –

0

オブジェクト指向の観点からは、すべてのコードをオブジェクトとメソッドとして記述する必要があります。 OOPの通貨はオブジェクトです。あなたが大規模なクラスを持っていて、それが単一の責任に違反するためそれを分解する方法が不思議であれば、経験則は変化するものをカプセル化することです。

5

方法がページに収まらない場合は、大きすぎます。 :-)

は本当に小さなフォントを使用するには言い訳ではありませんか、本当に大きなモニタを使用

行くと読んで、

、あなたはしないように狙えます始めるにはラガシーコードを作成してください!

2

免責事項:私はOOPに対しては何も持っておらず、まったく反対です。以下は単なる個人的な意見です

一般的に私は他の回答に同意し、必要と感じるたびにコードをメソッドに分解しようとします。

しかし、OOPはメソッドであり、呼び出す場合はツールです。 OOP技法を採用することは非常に強力ですが、他のアプローチがうまく適合する状況がまだあります。

シンプル

echo "Hello World!" 

が速いかもしれない/より良い/

class HelloWorld { 

    private String text = null; 

    public HelloWorld() { 
     this.text = "Hello World"; 
    } 

    public void print() { 
     echo this.text; 
    } 

} 

よりも簡単に(誇張された例hello world in patternの比較)

0

クラスは、1つのプライマリ目的を持つように設計されなければなりません。つまりクラスを単純明瞭に保つ。

メソッドを決めるときは、2つのことを念頭に置いてください。クラスのための明確なインターフェイスに焦点を当て、テスト可能なメソッドを作成します。

関連する問題