例如,在Mac OS X上,框架只是库,打包成一个捆绑包。在捆绑包中,你会找到一个实际的动态库(libWhatever.dylib)。裸库和Mac上的框架之间的区别在于,一个框架可以包含多个不同版本的库。它可以包含额外的资源(图像、本地化字符串、XML数据文件、UI对象等),除非框架向公众发布,否则它通常包含使用该库所需的. h文件。
Framework或Inversion of Control(IoC) container关于我们更重要。框架解决了广泛系列任务(特定于领域),你将此任务委托给框架。IoC-你的代码依赖于框架逻辑,事件…结果框架调用你的代码。它迫使你的代码坚持它的规则(实现/扩展协议/接口/契约),传递lambda…例如-测试、GUI、DI框架…
your code ->(has) and ->(implements) Framework API