9

Androidでは、多くの機能がActivity派生クラスにあります。アクティビティが大きくなると(多くのイベントハンドラーなどが含まれる場合)、Javaファイルが大きくなり、非常に雑然となる可能性があります。

partialC#にキーワードがあるように、Javaクラスコードファイルを「分割」する方法はありますか?

4

3 に答える 3

2

簡潔な答え ?番号。

ウィキペディアから引用

Sun Microsystems Java コンパイラでは、ソース ファイル名がその内部の唯一のパブリック クラスと一致する必要がありますが、C# では同じファイル内で複数のパブリック クラスを使用でき、ファイル名に制限はありません。C# 2.0 以降では、ソース コードで partial キーワードを使用して、クラス定義を複数のファイルに分割できます。Java では、パブリック クラスは常に独自のソース ファイル内にあります。C# では、ソース コード ファイルと論理ユニットの分離は密接に関連していません。

そのため、設計をやり直し、一部のコードをユーティリティ クラスに委譲してコードを整理することはできますが、Java では 1 つのクラスのコードを 2 つのファイルに分割することはできません。

于 2012-12-19T08:47:33.370 に答える
2

他の人が指摘しているように、実際のファイルを分割することはできません (これは良いことだと思います)。

カスタム ビューとフラグメントでビュー関連の機能を抽出できます。他のすべて (ビジネス ロジック、Web サービス アクセス、DB アクセスなど) は、アクティビティで使用する「ヘルパー」クラスに含めることができます。アクティビティは Android の神のオブジェクトですが、実際のアクティビティ クラス内にすべてを記述する必要はありません。調整するだけで、必要なコールバックとイベント ハンドラーを実装する必要があります (技術的には、独自のクラスにすることもできます)。

于 2012-12-19T09:00:16.863 に答える
0

いいえ。Java ソース コードを複数のファイルに分割することはできません。

http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharpから

Sun Microsystems Java コンパイラでは、ソース ファイル名がその内部の唯一のパブリック クラスと一致する必要がありますが、C# では同じファイル内で複数のパブリック クラスを使用でき、ファイル名に制限はありません。C# 2.0 以降では、ソース コードで partial キーワードを使用して、クラス定義を複数のファイルに分割できます。Java では、パブリック クラスは常に独自のソース ファイル内にあります。C# では、ソース コード ファイルと論理ユニットの分離は密接に関連していません。

于 2012-12-19T08:49:47.587 に答える