2012-03-15 13 views
0

私は1つだけのインスタンスを作成する私の全体のプログラムを含む "プログラム"という1つのクラスがあると仮定します。クラスを複数のファイルに分割するだけで継承を使うことはできますか?

このクラスには、買い物のための機能(メソッドなど)の多く(コードの半分)が含まれています。

上記のコードの半分で「ProgramWithoutShopping」という名前のクラスを作成してから、「ProgramWithoutShopping」を拡張する「Program」という名前のクラスにショッピング関連のコードを入れても問題ありません。他の目的は?

私の目標は、分離された機能とより小さなファイルのために、より良い概観を持つことです。

この戦略を実際に使用した大きなプロジェクトの例がありますか?

PS:「クラスをまったく使用しないでください」と書いている場合は、自分のプログラムがクラスである必要があるフレームワークで動作していると思われるかもしれません。

+5

"私は1つのインスタンスを作成する私のプログラム全体を含む"プログラム "という名前のクラスが1つあると仮定します。"これが問題です。あなたは本当にクラスが何のためのものか把握していません。コード用のコンテナではありません。それらはデータ型の記述です。データを構造化し、操作をオブジェクトの「振る舞い」として再構成するために、それらを作成します。実際に適切な方法で物事をカットするには、特定の状況に関する詳細情報が必要です。一般に、それは芸術の一種であり、単一のSO答えとして説明できるものではありません。 –

+0

あなたはどの言語を使用していますか? .Net言語は通常、 'partial'のようなキーワードを持ち、継承を悪用せずにクラスを複数のファイルに分割することができます。 –

+0

言語に応じて、C#の 'partial'クラスなど、複数のファイルにまたがってクラスを分割することができます。これは、正当な理由がないためにサブクラス化に頼らずに、ファイルの分離を行います。また、上記の@KarlKnechtelが言ったこと... – joshuahealy

答えて

1

あなたはどの言語を使用していますか? C#には、2つのクラスを必要とせずにこのケースでも機能する部分的なキーワードがあります。

あなたの質問に答えるには、直接何もしない基本クラスを持つことはかなり標準的ですが、全体的には便利です。通常、これはコードの重複を避けるために使用されますが、それは厳しい要件ではありません。

私は代わりに、2クラスで十分ですか?大部分のコードベースが1つのクラスにある場合、2つのクラスでもメンテナンスの問題が発生します。

あなたのクラスをより細かく分割することもできます。インスタンスの場合、典型的なOOPクラスのセットは、次のようになります。

Customer 
ShoppingCart 
Item 
Special 
Payment 
Order 

そして、それらは単なるデータオブジェクトである、価格を計算する方法のような実装に応じあなたはおそらく、あなたのアルゴリズムの一部をカプセル化することができ(それが)

関連する問題