Mac和iOS框架的命名规范是什么?

10

或者换句话说:

在 Mac 和 iOS 框架中,“Kit”、“Toolbox”、“Core”和“Foundation”前缀/后缀命名惯例是什么?

浏览苹果的框架,这些前缀和后缀似乎遵循一定的模式,但我没有找到任何文档解释确切的区别。这是我看到的基本模式:

  • Foundation - 低级别,C/Objc
  • Core - 中级别,C/Objc
  • Toolbox - 通用服务
  • Kit - 高级别,Objc

此外,这些名称之间还有一些交叉,我猜这意味着该框架是两个抽象级别的混合物。例如 Core Foundation Core Audio Kit

也许流行的第三方框架会严格遵循这些惯例吗?RestKit非常适合,因为它是高级别的,但是CorePlot似乎更应该使用CoreKit,如果不是因为与同名javascript库的google冲突。

这里有一个前缀列表,但在近4年的iOS开发中,我所遇到的仅有的前缀是CF(核心基础库),NS(NextStep遗产),CC(cocos2D)和KK(Kobold2D)。 - Daniel
1个回答

9
我不认为这是一种惯例,它与Cocoa的架构有关。我将尝试使用iOS架构进行回答,但Mac也是相同的。
从架构上讲,iOS分为4个主要层:
- 核心OS: 基本上就是内核。 - 核心服务: 这是Foundation和Core Foundation所在的地方,因此它可以处理字符串、集合等。它还可以操作硬件功能,如GPS,你会在这里找到Core Motion、Core Location,以及System Configuration。这一层也被称为核心框架层,因为它处理了操作系统的基本框架。 - 媒体: 顾名思义,它处理媒体(音频、视频和图形),因此你会找到诸如Core Graphics、Core Animation、Core Audio以及OpenGL ES和AVFoundation之类的框架。 - Cocoa Touch: 在这里,你将找到支持应用程序的高级框架,其中一些框架是UI Kit、Game Kit,还有消息UI、Address Book UI甚至单个名称的iAd或Social框架。
每一层都依赖于前一层。那么为什么苹果选择这些名称?通常,他们使用单词"Core"来指代框架的基础(内核),通常这些都是直接操作基本操作(硬件或来自操作系统)的低级框架。一个明显的例子是Foundation,它基本上是Core Foundation的面向对象包装器,或者AVFoundation依赖于Core Animation、Core Audio和Core Media,因此你可以看到foundation后缀不是最低级别,它依赖于架构。通常,你会使用"工具箱"一词来提供用于访问某些类型的外部文件/设备或支持管理它们的接口。通常,你会使用"kit"一词来提供一组可以直接在应用程序中使用的工具。
简而言之,命名框架的目标是根据架构设计理解其中包含的类。但正如我之前所说的,我不认为这是一种"惯例",它更像是一种"良好的做法"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接