首页 > 其他 > 详细

[Chrome]关于面向接口编程的应用

时间:2014-12-10 01:48:01      阅读:284      评论:0      收藏:0      [点我收藏+]
面向接口编程是OOP中有效隔离变化的手段,同时要求开发者必须对问题进行有效抽象。Chrome为了兼容AOSP WebView和Chromium Android WebView, 在实现中做了许多的抽象,充分做到了上层只依赖于接口的原则(依赖倒置),可以有效的兼容不同的WebView实现,隔离其内部的变化。

下面即为WebView到Content层的分解。刚开始读Chrome的代码,还没有细致整理,以后慢慢完善。

WebViewFactory是一个顶层类(单例),WebView就是通过它来获取不同的WebViewProvider,即可以创建出不同的WebViewChromium (就是WebView的核心实现。) 这个设计是为了同时兼容AOSP的WebView。如果我们需要提供一个完全不同的WebView实现,就可以实现一个新的WebViewProvider和WebViewChromiumFactoryProvider来完成。
    bubuko.com,布布扣

Android WebView为了操作不同的WebView实现,将具体的实现再通过WebViewProvider Interface封装,称为WebView的后端(backend)。对于Chromium Android WebView而言,它再通过AwContents与Chromium Content层交互。如果是另外一种WebView实现逻辑就可以在这里分隔开了。如下图:
    bubuko.com,布布扣

再深入一层, AwContents通过Content API的Java Wrapper类与Content API的Native类进行交互。
bubuko.com,布布扣

到了Content Native层后,除了一部业务逻辑处理,更重要的是和Render的交互。除了使用Delegate/Observer监听之外,自己也提供相同的机制,供上层使用。
bubuko.com,布布扣

转载请注明出处: http://blog.csdn.net/horkychen

[Chrome]关于面向接口编程的应用

原文:http://blog.csdn.net/horkychen/article/details/41837751

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!