img

目录

  • 案例介绍
  • 代码实现
  • 联系人数据模型
  • 代码详解
  • Contact类设计
  • ContactGroup类设计
  • 数据结构使用示例
  • 总结

案例介绍

本篇文章将介绍如何设计一个联系人分组列表应用的数据模型。我们将实现联系人的基本数据结构和分组数据结构,为构建一个按字母分组显示的联系人列表打下基础。

代码实现

联系人数据模型

// 联系人数据模型
class Contact {
  id: number;
  name: string;
  phoneNumber: string;
  avatar: Resource;
  
  constructor(id: number, name: string, phoneNumber: string, avatar: Resource) {
    this.id = id;
    this.name = name;
    this.phoneNumber = phoneNumber;
    this.avatar = avatar;
  }
}

// 联系人分组数据结构
class ContactGroup {
  letter: string;
  contacts: Array<Contact>;
  
  constructor(letter: string, contacts: Array<Contact>) {
    this.letter = letter;
    this.contacts = contacts;
  }
}

代码详解

Contact类设计

  1. 属性设计:

    • id: 联系人唯一标识符
    • name: 联系人姓名
    • phoneNumber: 联系人电话号码
    • avatar: 联系人头像资源
  2. 构造函数:

    • 接收所有必要的联系人信息
    • 使用Resource类型存储头像资源,支持本地资源引用

ContactGroup类设计

  1. 属性设计:

    • letter: 分组字母(A-Z)
    • contacts: 该分组下的联系人数组
  2. 构造函数:

    • 接收分组字母和联系人数组
    • 使用Array类型存储联系人列表

数据结构使用示例

// 创建联系人数据
private contacts: Array<Contact> = [
  new Contact(1, '张三', '13800138001', $r('app.media.avatar1')),
  new Contact(2, '李四', '13800138002', $r('app.media.avatar2')),
  new Contact(3, '王五', '13800138003', $r('app.media.avatar3'))
];

// 创建分组数据
private contactGroups: Array<ContactGroup> = [];

总结

本篇文章介绍了联系人分组列表应用的核心数据模型设计。通过定义Contact和ContactGroup两个类,我们建立了清晰的数据结构,为实现联系人的分组显示和管理提供了基础。这种设计支持按字母分组显示联系人,并可以方便地扩展更多功能。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐