我以前多次遇到这个问题,并且再次看到这些术语并且不知道它们在计算机工程中的真正概念。
平台和框架指的是什么?
我看到了很多术语,例如平台无关和开发平台,框架也一样,但我不能安静地理解它们。他们指的是图书馆吗?它们是指不同类型的操作系统吗?
我以前多次遇到这个问题,并且再次看到这些术语并且不知道它们在计算机工程中的真正概念。
平台和框架指的是什么?
我看到了很多术语,例如平台无关和开发平台,框架也一样,但我不能安静地理解它们。他们指的是图书馆吗?它们是指不同类型的操作系统吗?
框架一词的定义非常明确:框架与库非常相似,只是 Control 是 Inverted。(控制反转是构成框架的定义特征。) IOW:您调用库,但框架调用您。
另一种思考方式是,您编写一个应用程序,但将所有不感兴趣的细节留空并使用库来填充它们。OTOH 框架是一个应用程序。它是一个应用程序,所有有趣的细节都留空供您填写。(当然,在您用来填写空白的代码中,您可以自己调用库。另外,框架本身会调用库来实现它的内部工作原理。而且,框架通常与一组丰富的库捆绑在一起,这些库与框架紧密集成。但是,区别仍然很明显。仅仅因为框架和库一起提供在一个包中并不意味着存在没有区别。)
然而,平台这个词的定义不是很好。它也严重超载。在移植原生应用的上下文中,通常是指CPU ISA(如x86、AMD64、IA-64、POWER、MIPS、ARMv9、Sparc)、硬件架构(PC、CHRP、PReP、Mac)、内核( Linux、NT)和基础库(POSIX、Win32、Core Foundation)。
在更广泛的软件开发环境中,“平台”通常字面意思是“您的代码所在的平台”。对于本机应用程序,这可能与上述基本相同,对于 JVM 应用程序,它可能是 JVM 加上 JRE 加上 OSGI。
基本上,你可以把这个比喻看得很直白:一个平台允许你(即你的代码)比没有它的你站在更高的地方。
平台是一个无定形的术语,它可能意味着:
另一方面,框架通常是工具的集合:它们可能是基于软件、硬件、方法论/模式的(尽管不一定是任何特定框架中的所有这些),它们结合起来提供了一种构建应用程序的方法(或特定层应用)
一些框架的例子是:
软件
硬件软件
方法/模式(或过程)
平台通常意味着与软件运行的环境有关。所以它通常意味着操作系统(例如 windows 或 Linux),但有时也意味着架构(x86 可能是一个平台,或者 java 虚拟机)。框架通常是函数或类的集合,因此通常与库相同,或者可以以相同的方式大致理解。
我将尝试平台部分:平台用于谈论您“构建”的事物,或者您可以将其视为“站立”,以进行字面类比以完成某事。我使用过“电话平台”——它由支持开发交互式语音响应系统的软件和硬件组件组成。
您可以在此处阅读有关平台和软件框架的信息: 链接文本