在三层架构下,应用里的通用常量应该放置在哪里?请给出相关的案例代码印证一下。(HarmonyOS 鸿蒙Next)
在三层架构下,应用里的通用常量应该放置在哪里?请给出相关的案例代码印证一下。(HarmonyOS 鸿蒙Next) 在三层架构下,应用里的通用常量应该放置在哪里?请给出相关的案例代码印证一下。
2 回复
通用常量一般放在公共能力层,参考图片美化案例,commons\base\src\main\ets\constants目录下存放通用常量:https://gitee.com/harmonyos_codelabs/MultiPictureBeautification/tree/master/commons/base/src/main/ets/constants
更多关于在三层架构下,应用里的通用常量应该放置在哪里?请给出相关的案例代码印证一下。(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙Next)的三层架构下,通用常量通常放置在model
层的constants
模块中。这样设计可以确保常量在整个应用中保持一致性,并且便于维护和复用。
以下是一个简单的案例代码,展示如何在鸿蒙Next中定义和使用通用常量:
- 定义常量文件:在
model
层创建一个constants
文件夹,并在其中定义常量文件AppConstants.ets
。
// model/constants/AppConstants.ets
export class AppConstants {
static readonly BASE_URL: string = "https://api.example.com";
static readonly MAX_RETRIES: number = 3;
static readonly TIMEOUT: number = 5000;
}
- 在业务逻辑中使用常量:在
ViewModel
或Model
中引用这些常量。
// model/viewmodel/UserViewModel.ets
import { AppConstants } from '../constants/AppConstants';
export class UserViewModel {
fetchUserData() {
const url = AppConstants.BASE_URL + "/users";
const retries = AppConstants.MAX_RETRIES;
const timeout = AppConstants.TIMEOUT;
// 模拟网络请求
console.log(`Fetching data from ${url} with ${retries} retries and ${timeout}ms timeout`);
}
}
- 在UI层调用业务逻辑:在
View
层调用ViewModel
中的方法。
// view/UserPage.ets
import { UserViewModel } from '../model/viewmodel/UserViewModel';
@Entry
@Component
struct UserPage {
private userViewModel: UserViewModel = new UserViewModel();
build() {
Column() {
Button("Fetch User Data")
.onClick(() => {
this.userViewModel.fetchUserData();
});
}
}
}
通过这种方式,通用常量集中定义在model/constants
模块中,确保了代码的清晰性和可维护性。