2011-06-27 13 views
6

私は今Android向けにプログラミングする方法について多くのチュートリアルを見てきました。私自身もいくつかのプログラムを作成し始めました。しかし、私は自分のプログラムが手続き型のもののように見えるのに対して、Javaはオブジェクト指向で作業する必要があることに気付きました。私はこれを修正しようとしていますが、問題が見つかりました。私のプログラムの主要なクラス - 例えばcom.testprogram.wwwの下で、アプリケーションの開始時に実行されるクラスは、同時にスクリーンレイヤーとコントロールレイヤーが混在しているようです。Androidプログラムのオブジェクト指向の正しい方法は何ですか?

私が見つけたすべてのチュートリアルでは、main.xmlビューから復元されているビジュアルオブジェクトが表示されています(たとえば、この回復によって、これは治療の「制御」レイヤーになります)。オブジェクトが何らかのリスナーに登録されています(この場合はOnClickListener - これはコントロールではなく、画面で行う必要があります)。

これはこのような意味ですか? wwwパッケージの下のこのメインクラスは何ですか? 「スクリーン」レイヤーまたは「コントロール」レイヤー?このクラスは、私が上記のことをするのに適した場所ですか?これはXMLベースのインターフェイスがJavaリスナーを登録できないため、このように行われますか? Android用のOOの方法については、誰でも私が参考になる良い場所を知っていますか?ここで

答えて

0

あなたはXMLとしてレイアウトの標準パターンを使用する場合、のstrings.xmlの文字列、ハンドラの活性およびコア・ロジック/アルゴリズム/データストア検索を配置別のクラス(モデルクラス)を使うと、より良いコードを書く上でうまくいくでしょう。あなたのアーキテクチャをテストするには

1)あなたは、コア・ロジック/アルゴリズム/データストア(モデルクラス)にユニットテストを行うことができればUIとは別の自分を確認して下さい。異なるUIを持つ別のプロジェクトでモデルクラスを難なく再利用できますか?

2)次に、オプションのstrings.xmlファイルを指定するだけで、アプリを別の言語に移植できるかどうかを尋ねます。

プレゼンテーション(ビュー)は主にmain.xmlにあります。 イベントおよびシステム処理コード(Controller)は主にMyActivity.javaにあります アルゴリズム/データストアは主にModel.javaにあります。

本当に大きな違いは、コアアルゴリズム/データストアとユーザーインターフェイスです。コアアルゴリズム/データストアは、ユーザーインターフェイスの詳細を知らないようにする必要があります。 UNIXでは、これはINTERFACE(VC)-ENGINE(M)パターンです。コントローラーからビューを分離するだけで、アーキテクチャーはさらに一歩進んでいます。それはバインディングの使用だと役立ちます

希望、 JAL

1

次の2つの異なるアーキテクチャパターンに関する2つの質問を確認することができます。

0

MVVMは、Androidのプログラミングで非常に有用です。インフラストラクチャに現在存在するオーバーロードされたアクティビティ構造を軽減するのに役立ちます。以下は、使用できるオープンソースのバインディングライブラリです。

http://code.google.com/p/android-binding/wiki/Motivation

関連する問題