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
待解决
相关问题
arkts中怎么实现base64编码?
695浏览 • 1回复 待解决
ArkTS使用AVPLayer实现视频播放时,如何实现全屏播放功能
2322浏览 • 0回复 待解决
ArkTS中的as与js和ts中的as有什么具体区别
1845浏览 • 1回复 待解决
Arkts开发 api9 中怎么实现扫码功能?
2952浏览 • 1回复 待解决
ArkTS中如何实现反射?
182浏览 • 1回复 待解决
Ability 全屏模式无法实现
221浏览 • 2回复 待解决
HarmonyOS 怎么在页面中自定义全屏和不全屏,显示和隐藏状态栏?
121浏览 • 1回复 待解决
请问webview中h5的video组件如何实现全屏
1997浏览 • 0回复 待解决
在如下语法中,这是ArkTS的语法还是TypeScript中的语法,在TypeScript中没找到具体说明
185浏览 • 1回复 待解决
HarmonyOS CustomDialogController自定义弹窗怎么屏蔽系统返回
220浏览 • 1回复 待解决
HarmonyOS 列表视频全屏播放实现
300浏览 • 1回复 待解决
HarmonyOS 实现沉浸式全屏模式,全局设置所有页面方式怎么做?
352浏览 • 1回复 待解决
ArkTs怎么实现扫一扫功能?
4597浏览 • 1回复 待解决
怎么看api的源码,点击进去看不到具体实现
6930浏览 • 1回复 待解决
Video组件的自带全屏按钮如何实现点击全屏切换成横屏?
164浏览 • 1回复 待解决
HarmonyOS 页面内组件全屏怎么处理?
342浏览 • 1回复 待解决
HarmonyOS AES加密CBC模式中IV的实现,ArkTS和C++怎么对应上
426浏览 • 1回复 待解决
Serial Monitor中启动测试不能完全通过,AT命令出错。
6886浏览 • 2回复 已解决
ArkTS中Web交互、网络请求如何实现?
185浏览 • 1回复 待解决
ArkTS中如何实现对象的深拷贝?
166浏览 • 1回复 待解决
禁用窗口的全屏显示功能如何实现?
309浏览 • 1回复 待解决
HarmonyOS 用启动首帧图片怎么全屏
333浏览 • 1回复 待解决
实现开放式测试的具体流程
1775浏览 • 1回复 待解决
HarmonyOS Navigation全局路由管理的具体实现
351浏览 • 1回复 待解决
在ArkTs中实现vue的slot的思路
388浏览 • 1回复 待解决
建议通过构建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