以下特点区分了框架和库:控制反转 - 在框架中,与库或普通用户应用程序不同的是,整个程序流程的控制不是由调用者决定,而是由框架决定。默认行为 - 框架具有默认行为。此默认行为必须实际上是一些有用的行为,而不是一系列无操作的行为。可扩展性 - 用户通常可以通过选择性重载或提供特定功能的用户代码来扩展框架。不可修改的框架代码 - 一般来说,框架代码不允许被修改。用户可以扩展框架,但不能修改其代码。基本上,框架是一种行为无法改变的库类型。例如,在Java中,您可以扩展类ArrayList或HashMap,但无法更改这些类的行为。