码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-10 01:48:35      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:chrome

面向接口编程是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]关于面向接口编程的应用

标签:chrome

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!