Ios 基础或UIKIT组合示例
我正在努力更好地理解构图的设计原则。在UIKIT或基础框架中有什么例子吗?Ios 基础或UIKIT组合示例,ios,composition,Ios,Composition,我正在努力更好地理解构图的设计原则。在UIKIT或基础框架中有什么例子吗? 根据我的经验,在明确思考这个问题之前,似乎继承是这两个框架的主要模式。也许我把你的问题搞错了,但也许这就是你想要的: 这里有一个类似的问题: 下面是对模式的非常好的描述,也许可以让您更好地了解它: 遗传在基础上是罕见的,并不是UIKIT的主要模式。在这两种情况下,合成都更为常见 继承和组合之间的区别通常表示为is-A和HAS-A。is-A方法是子类。HAS-A方法是授权 考虑一个只接受某些字符的文本字段。在IS
根据我的经验,在明确思考这个问题之前,似乎继承是这两个框架的主要模式。也许我把你的问题搞错了,但也许这就是你想要的: 这里有一个类似的问题: 下面是对模式的非常好的描述,也许可以让您更好地了解它:
遗传在基础上是罕见的,并不是UIKIT的主要模式。在这两种情况下,合成都更为常见
继承和组合之间的区别通常表示为is-A和HAS-A。is-A方法是子类。HAS-A方法是授权 考虑一个只接受某些字符的文本字段。在IS-A样式中,您将子类化UITextField
。这在iOS中并不常见。相反,您传递一个委托(任何符合
的内容),文本字段在需要时查阅它。这是一个HAS-a方法。文本字段“有一个”委托
考虑一个UITableView
。你想做一张歌曲表。在IS-A(继承)方法中,您将子类化UITableView
,并生成一个SongsTableView
。在HAS-A(composition)方法中,您可以创建一些其他对象(一个SongsDataSource
)并将其交给UITableView
。在这种情况下,UIKit使用了两者中的一点;您为UITableView
提供了一个数据源,但该数据源通常(但不要求)是UITableViewController
的子类
类似地,虽然子类UIView
或CALayer
有些常见,但使用“库存”视图和层并通过添加子组件来构建它们也很常见。这就是HAS-A方法
该基金会几乎没有IS-A。除了<代码> NSbOuts<代码>之外,很少有子类子类。考虑<代码> NStestDebug字符串< /代码>。它没有子类
NSString
。它有一个NSString
。这是一般的做事方法。您几乎从不创建自己的子类:<代码> NScord,<代码> NSArray < /代码>,<代码> NDATE < /COD>,<代码> NStUD> <代码>,或者任何其他常见类型。您可以将它们组合起来。那么将属性添加到另一个对象是合成模式的一部分吗?例如,@property(…)UITextField*loginTextField
添加到UIViewController被视为组合?如果是的话,我看不到用继承做这件事的替代方法。或者这只是光谱组成端的一个极端例子?是的,属性绝对是组成的例子。在OOP中很难避免组合。它是范例的基本部分,甚至比子类化更重要(基于原型的OOP,比如JavaScript,甚至没有子类化)。视图控制器是系统中最复杂的部分之一,在组合和继承方面都有重要的用途,因此很可能是最难获得清晰图像的部分。首先考虑一些简单的事情,比如文本字段。考虑如何使用NoMulnLyTeXFieldAdvor构建一个No.No.TythFieldVS。