ArkTS中怎么完全屏蔽具体实现
通过如下接口抽象的方式设计SDK,定义SdkApi接口,SDK内实现SdkApi接口,只提供SdkApi接口给调用者,能完全屏蔽具体实现,让调用者无法查看吗?
export interface SdkOptions { 
  // … 配置项 
} 
 
export interface SdkApi { 
  connect(options: SdkOptions): void; 
  doSomething(): Promise<ResultType>; 
  // … 更多的API方法 
} 
 
import { SdkApi, SdkOptions } from “./sdk-interfaces”; 
 
class SdkImplementation implements SdkApi { 
  constructor(private options: SdkOptions) {} 
  connect(options: SdkOptions): void { 
    // 实现细节 
  } 
  doSomething(): Promise<ResultType> { 
    // 实现细节 
  } 
  // … 更多的API方法实现 
} 
 
import { SdkOptions, SdkApi } from “./sdk-interfaces”; 
import { SdkImplementation } from “./sdk-internal”; 
 
export function createSdk(options: SdkOptions): SdkApi { 
  return new SdkImplementation(options); 
}场景描述:将密钥和加密算法封装在SDK中,希望通过接口屏蔽具体实现,只暴漏接口给调用者,避免密钥和加密算法暴漏给调用者
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 弹窗中半窗怎么设置?怎么具体设置? 
639浏览  • 2回复 待解决
arkts中怎么实现base64编码? 
2140浏览  • 1回复 待解决
HarmonyOS Video组件的全屏是怎么实现的 
1130浏览  • 1回复 待解决
ArkTS使用AVPLayer实现视频播放时,如何实现全屏播放功能 
3672浏览  • 0回复 待解决
ArkTS中的as与js和ts中的as有什么具体区别 
3558浏览  • 1回复 待解决
HarmonyOS 接口类怎么得到自己的具体实现类 
937浏览  • 1回复 待解决
Arkts开发 api9 中怎么实现扫码功能? 
4392浏览  • 1回复 待解决
HarmonyOS 怎么在页面中自定义全屏和不全屏,显示和隐藏状态栏? 
1013浏览  • 1回复 待解决
HarmonyOS  CustomDialogController自定义弹窗怎么屏蔽系统返回 
1432浏览  • 1回复 待解决
ArkTS中如何实现反射? 
2660浏览  • 1回复 待解决
Ability 全屏模式无法实现 
1272浏览  • 1回复 待解决
在 c++端用 CAPI 实现窗口设置隐私模式,具体怎么实现啊 
78浏览  • 0回复 待解决
HarmonyOS 地图怎么单独全屏显示 
1244浏览  • 1回复 待解决
HarmonyOS ArkTS中object类型如何转换为具体要使用的类型 
2938浏览  • 1回复 待解决
在如下语法中,这是ArkTS的语法还是TypeScript中的语法,在TypeScript中没找到具体说明 
1516浏览  • 1回复 待解决
HarmonyOS  Tabs组件中TabBar不能完全贴合 
1125浏览  • 1回复 待解决
怎么看api的源码,点击进去看不到具体实现 
8527浏览  • 1回复 待解决
HarmonyOS 页面内组件全屏怎么处理? 
1755浏览  • 1回复 待解决
如何在ArkTS中实现接口? 
3268浏览  • 1回复 待解决
HarmonyOS 实现沉浸式全屏模式,全局设置所有页面方式怎么做? 
1407浏览  • 1回复 待解决
HarmonyOS webview的H5页面里有个视频播放器,自带的全屏按钮,点了窗口大小没有完全全屏 
1547浏览  • 1回复 待解决
请问webview中h5的video组件如何实现全屏 
3432浏览  • 1回复 待解决
ArkTs怎么实现扫一扫功能? 
6536浏览  • 1回复 待解决
HarmonyOS中AES加密CBC模式中IV的实现,ArkTS和C++怎么对应上? 
770浏览  • 0回复 待解决





















建议通过构建HAR包,开启release编译、混淆选项实现。HAR的Ts和ets文件就会生成js和d.ts文件,调用点击函数时,会先跳转到该.d.ets声明文件.d.ts是声明文件,隐藏了实现细节(类似于java的接口实现)js是真实的实现类,这个是无法隐藏,用户还是能看到的
构建har 包:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package-0000001774279570
混淆相关文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-obfuscation-0000001731754312
https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README-cn.md