1. 程式人生 > >WhatsNote多層目錄結構設計

WhatsNote多層目錄結構設計

WhatsNote多層目錄結構設計

一、整體結構

整體結構由三部分組成

  • 目錄
  • 筆記
  • 記錄——筆記及目錄的所屬關係。

目錄和筆記為原子資料,目錄與目錄、筆記與筆記、目錄與筆記之間沒有層級關係,分開儲存在2個集合當中。

記錄將目錄與筆記聯絡到一起,建立層級及所屬關係。

二、資料設計

  • 記錄
/** 記錄集合 */
RecordDataset extends BaseDataset

/** 記錄 */
RecordEntity extends
BaseEntity String parent; // 父類ID String type; // 型別,Folder或者Note ArrayList<String> orderList; // 順序列表
  • 目錄與筆記的基類
/** 抽象基類,目錄與筆記的共同屬性 */
FileEntity extends BaseEntity
	String name; // 名稱
	String desc; // 描述
	String alias; // 自動生成的名稱
  • 目錄
/** 目錄集合 */
FolderDataset extends BaseDataset
/** 目錄 */
FolderEntity extends FileEntity
	
  • 筆記
/** 筆記集合 */
NoteDataset extends BaseDataset
/** 筆記 */
NoteEntity extends FileEntity
	ArrayList<String> tagList; // 標籤列表

三、筆記管理者

NoteManager用來管理RecordDatasetFolderDatasetNoteDataset。通過NoteManager,我們可以訪問並管理所有的資料資訊,目錄、筆記、層級結構。

  • NoteManager
    的核心屬性
RecordDataset recordDs; // 記錄集合
File recordFile; 

FolderDataset folderDs; // 目錄集合
File folderFile; 

NoteDataset	noteDs; 	// 筆記集合
File noteFile; 
  • NoteManager的核心方法
  1. 讀取指定目錄資料集合
public List<FileEntity> get(String parent); 
  1. 建立目錄及筆記
public FolderEntity createFolder(String parent); // 建立目錄
public NoteEntity createNote(String parent); // 建立筆記
  1. 刪除目錄及筆記
public void remove(FolderEntity entity); 
public void remove(NoteEntity entity); 
  1. 儲存資料
public void save(); 
  1. 功能方法
public String getFolderName(String name); // 獲取目錄名稱
public String getNoteName(String name); //	獲取筆記名稱
  1. 內部方法
RecordDataset getRecordDataset(); 
FolderDataset getFolderDataset(); 
NoteDataset getNoteDataset();