3

http://developer.android.com/guide/basics/what-is-android.htmlAndroid アーキテクチャを参照してください。

さまざまなサブシステムのファサードオブジェクトのようなさまざまなマネージャーを検討できますか?たとえば、Resource Managerをすべてのリソースサブシステムのファサードオブジェクトのように見なすことができますか?

それとも、クラスのマネージャー名は異なる目的を持っていますか?

4

2 に答える 2

4

これはケースバイケースで区別する必要があり、答えは「いいえ」になることがよくあります。その理由を説明させてください。

4つの定義されたファサードのギャングは、それ自体には機能がないが、サブシステムへのアクセスを削除せずにサブシステムへのシンプルなインターフェイスを提供するシステムへの特定のエントリポイントとして定義されています。

それでは、たとえばandroid.content.res.Resourcesを見てみましょう。それは本当に統一されたインターフェースですが、それを使用せずにリソースを取得できますか?いいえ、それは不可能です。プログラマーが利用できないメソッドを使用android.content.res.AssetManagerします。したがってResources、他のものへのアクセスを実際に単純化するわけではありません。このクラスは、リソースシステムの不可分の一部です。これは、このクラスをファサードと見なすことはできないことを意味します。

逆に、 android.view.animation.AnimationUtilsのようなクラスはファサードです。開発者が自分でできないことは何もしません。ただし、XMLファイルを解析してアニメーションクラスを手動で作成する代わりに、開発者はこのクラスのメソッドの1つを呼び出す方が簡単です。これは、システム自体へのアクセスを削除せずに、アニメーションサブシステムのデフォルトの使用法を表しています。したがって、ファサードと呼ばれる完全な権利があります。

于 2012-02-21T09:15:50.620 に答える
2

あなたは正しい方向に反省していると思います。たとえばXXXManager、Android Frameworkには、指定されたシステムで作業できるクラスがいくつかあります。設定システム、検索システム、アプリケーションパッケージシステムなどです。

そして、私たちはファサードのようにこのクラスのすべてを知覚するかもしれません。もう1つの手は、システムに変更を加えるために使用する必要がある、より具体的なオブジェクトを提供します。

于 2012-02-21T08:58:33.987 に答える