外观模式即对外提供统一接口,底层实现随意【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】。对于使用者而言,使用基于外观模式的库时【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。,在任何情况下,想要调用某个功能时,都使【转载请注明来源】原创内容,盗版必究。用相同的api。在日常中,常见的外观模式【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。就是不同浏览器,都基于HTML标准提供相【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。同接口,但是实际上浏览器内部怎么实现这些转载请注明出处:www.tangshuang.net原创内容,盗版必究。接口的,完全不一样(当然,由于不一样的实【原创不易,请尊重版权】【原创不易,请尊重版权】现,在实际运行时也会导致运行效果差异)。
转载请注明出处:www.tangshua著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】ng.net未经授权,禁止复制转载。那么在跨端开发时,怎么做呢?我们要创建一【作者:唐霜】【原创不易,请尊重版权】个H5页面和一个RN界面,我们使用相同的著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net接口调用某库,然后希望被调用的接口在we【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。b和原生上都能用。例如:
【本文受版权保护】转载请注明出处:www.tangshua著作权归作者所有,禁止商业用途转载。【转载请注明来源】ng.net本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。import SomeLib from 'some-lib'
const pdf = SomeLib.print('xxx')
对于some-lib这个库而言,它提供 【转载请注明来源】【转载请注明来源】print 接口。在web和原生平台上都【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net这样去使用,使用层面没有差异。但是,我们【原创不易,请尊重版权】【版权所有】唐霜 www.tangshuang.net知道,web上和原生上调用系统的打印功能【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。是不一样的,所以我们又要分开去实现不同平本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net台上的具体能力。设计上怎么做呢?如下:
【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】【版权所有】唐霜 www.tangshu转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】ang.netSomeLib.implement((text) => {
console.log(text)
})
这是在web上的实现,在原生上的实现可能本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。需要借助原生提供的接口来做。对于some【版权所有,侵权必究】原创内容,盗版必究。-lib这个库而言,它本身实际上没有实现原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】打印这个过程,这个过程要开发者自己去实现【本文受版权保护】【访问 www.tangshuang.net 获取更多精彩内容】。但是这个库却提供一系列用于打印的功能。
【版权所有】唐霜 www.tangshu【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。ang.net【版权所有,侵权必究】通过这种设计,我们就可以在应用的开发上做【未经授权禁止转载】【转载请注明来源】到比较方便的跨端开发。
【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。未经授权,禁止复制转载。

和react有点像呢