Androidでは。ViewGroup
から継承しView
ます。AViewGroup
はを保持するコンテナViews
です。
ViewGroup (LinearLayout)
View (TextView)
Androidの人々がこの関係Inheritance
を構成ではなく定義したのはなぜですか。ViewGroup
含まれているので、Views
それは構成であるべきではありませんか?
私はあなたが言葉遣いにあまりにも夢中になっていると思います。
「ViewGroup」には、「View」から「TextView」、「ImageView」、または...さらに重要な点として「ScrollView」または「SurfaceView」(後者)を継承する理由があります。 2つは両方とも「物を含む」)。
おそらく、「表示」は必ずしも用語の最良の選択ではありませんでした...しかし、クラス階層は完全に理にかなっています。サブクラスの名前に関係なく:)
私見では ...
これは、コンポジットデザインパターンの優れた例だと思います。
http://en.wikipedia.org/wiki/Composite_pattern
ネーミングは最高ではないかもしれませんが...
Aは、重要な方法でビューとして機能できるためViewGroup
、(のサブクラス)です。View
setContentView()
)だからそれは本当にですView
。
ViewGroup
クラス名はビューではなくグループのように聞こえるので、少し混乱することに同意します。扱いにくい場合は、それを呼び出すViewGroupView
方が論理的だったかもしれません。
Androidの人々がこの関係を構成ではなく継承として定義したのはなぜですか?ViewGroupにはビューが含まれているので、それは構成ではありませんか?
このような場合、継承と構成は相互に排他的ではありません。ViewGroupはビュー(継承)であり、ViewGroupにはビュー(構成)を含めることができます。
公式ドキュメントを読むことが黄金律です。
ViewGroupは、他のビュー(子と呼ばれる)を含めることができる特別なビューです。ViewGroupは、レイアウトおよびビューコンテナの基本クラスです。このクラスは、レイアウトパラメータの基本クラスとして機能するViewGroup.LayoutParamsクラスも定義します。
それでもそれが何であるかわからない場合は、Google画像で検索してください。
ビューグループはビューのプロパティを継承し、他のビューやビューグループでより多くのことを行います
ViewGroupは、他のビューを含めることができる特別なビューです。-ビューグループは、レイアウトおよびビューコンテナの基本クラスです。-たとえば、RelativeLayoutは、TextView(View)およびその他のレイアウトも含むViewGroupです。
情報についてはリンクを参照してください: https ://developer.android.com/reference/android/view/ViewGroup.html
ビューは、ユーザーインターフェイスコンポーネントの基本的な構成要素を表します。ビューは画面上の長方形を占め、イベントの描画と処理を担当します。-例としては、EditText、Button、TextViewなどがあります。
情報についてはリンクを参照してください: https ://developer.android.com/reference/android/view/View.html