Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

Objective-C语法上有什么优点吗?

2021年10月12日8820百度已收录

既然Objective-C被许多开发者使用,必然也是有其优点和可取之处的。Objective-C,通常被称为ObjC,是一种面向对象的编程语言。它主要在Mac OS X和GNUstep(基于OpenStep标准的两个环境)上使用,并且是NeXTSTEP和OPENSTEP中使用的主要语言。

优点:

1、ObjC是一种非常“实用”的语言。它使用一个用C编写的精简运行时,对应用程序的大小几乎没有增加。相比之下,现在大多数OO系统都使用大型VM运行时来接管整个系统。用ObjC编写的程序往往不比其代码和库的大小大很多(通常不必包含在软件发行版中),而Smalltalk系统则需要大量的内存打开一个窗口。

2、该语言是在现有C编译器(首先作为预处理器,然后作为GCC模块)之上而不是作为新的编译器实现的。这使ObjC可以利用现有的大量C代码,库,工具和思想。可以轻松地将现有的C库(甚至在目标代码库中)包装在ObjC包装器中,为它们提供OO样式,并更轻松地在程序中使用它们。

其他特性

实际上,ObjC包含一个功能清单,这些功能在其他语言中,或者根本不存在。这些是由Cox(以及后来的NeXT)意识到的,编程远远超出了语言。该系统必须具有整体可用性和灵活性,才能在现实环境中工作。

所有库都是动态链接的。这意味着大型的Objective-C程序实际上很小,因为该库已经在机器上了。也许今天很常见,但这是从1980年代初开始的,当时动态链接还很少。可以在一个文件中提供多个版本的库。应用程序可以选择使用特定版本(4.3.2),最新版本(恰好是5.2.1)或甚至是特定主要版本的最新版本(从4.x开始的任何版本)。直到今天,诸如此类的版本控制问题仍困扰着其他系统,包括Java和组件对象模型。可以在一个库中以多种对象格式为不同平台提供代码。这样可以完全避免使用虚拟机。典型的多平台Objective-C程序比其他系统上的大多数单平台程序小。

缺点:

1、Objective-C的第一个版本不支持垃圾回收。当时这是一个辩论的问题,许多人认为漫长的“死角”是在Smalltalk进行收集以使整个系统无法使用时进行的。ObjC通过不包含此功能来避免了该问题。但是回想起来,这是一个严重的疏忽。尽管一些第三方已添加了此功能(最著名的是GNUStep),但它仍在标准之外。

2、ObjC没有命名空间机制。相反,程序员被迫在其类名中添加前缀,这充其量是一个糟糕的解决方案。在ObjC下添加名称空间系统将是简单而自然的(它们在其中清晰地映射到库系统),因此这没有发生是有些令人惊讶的。

3、与某些其他面向对象的编程语言(例如C ++)不同, Objective-C不支持运算符重载。

4、Objective-C只允许一个对象从一个类继承(禁止多重继承),但是可以看出这简化了继承结构,从而有助于调试。

5、由于该语言基于C编译器,因此它仍然高度依赖源文件才能正常工作。这在大多数现代语言(例如Java或C#)中不再需要。

评论列表暂无评论
发表评论
微信