在安卓系统中,ViewGroup继承了View。ViewGroup是一个容纳Views的容器。
ViewGroup (LinearLayout)
View (TextView)为什么安卓的人将这种关系定义为Inheritance而不是组合。因为ViewGroup包含Views,所以它不应该是组合吗?
发布于 2011-12-23 14:12:44
我认为你在措辞上太过执着了。
"ViewGroup“和"TextView”一样有理由继承"View“,以及"ImageView”或...更重要的是..."ScrollView“或"SurfaceView”(后两者都是“包含事物”)。
也许“视图”不一定是最佳的术语选择……但是类的继承性是完全有意义的。不管它的子类是什么名称:)
我的..。
发布于 2013-05-20 21:03:08
我认为这是一个很好的复合设计模式的例子:
http://en.wikipedia.org/wiki/Composite_pattern
即使命名可能不是最好的.
发布于 2015-08-07 03:59:32
ViewGroup是View的(子类),因为它可以以重要的方式用作视图:
所以它真的是一个View。
我同意类名ViewGroup有点令人困惑,因为它听起来像是一个组,而不是一个视图。将其命名为ViewGroupView可能更符合逻辑,尽管很笨拙。
为什么安卓的人把这种关系定义为继承而不是组合?因为ViewGroup包含视图,所以它不应该是复合的吗?
在这种情况下,继承和组合并不是相互排斥的。ViewGroup是一个视图(继承),而一个ViewGroup可以包含视图(组合)。
https://stackoverflow.com/questions/8612774
复制相似问题