在三层架构下,应用里的通用常量应该放置在哪里?请给出相关的案例代码印证一下。(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中定义和使用通用常量:

  1. 定义常量文件:在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;
}
  1. 在业务逻辑中使用常量:在ViewModelModel中引用这些常量。
// 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`);
    }
}
  1. 在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模块中,确保了代码的清晰性和可维护性。

回到顶部