Lovely Mother - 個人技術文檔 - Zyuu

負責任務:

  1. 組間協調(被漫畫師罵,被項目經理罵,被技術主管罵,被衝刺經理罵)
  2. 需求分析(提出一堆沒什麼用的東西)
  3. 系統主要業務(隊友搭好了架構之後爲所欲爲)
  4. 客戶端架構(不動腦子寫代碼)
  5. 重構(不動腦子寫代碼的結果)

一、用例分析
  • Part 1 :
    • 功能主題 : 添加自設的進程黑名單
    • 角色 : 用戶
    • 觸發條件 :
      1. 用戶進入「查看黑名單」模式
      2. 點擊了「添加新進程」按鈕
  • Part 2 :
    • 功能主題 : 點擊開始後,進入「懲罰」模式
    • 角色 : 用戶
    • 觸發條件 :
      1. 用戶設置時間大於1minute
      2. 用戶在開始界面摁下了開始按鈕

二、技術說明書

  • Part 1 :

    • 所用模型 : MVVM

      • Model層 :
      • Service層 :
      • ViewModel層 :
      • View層 :
    • 流程:

      1. 用戶點擊添加進程 button => ViewProgressPage 跳轉到 addProgressPage

      1. 用戶點擊「Step1:打開你想添加的應用程序,摁下確認」 button => 調用AddProgressViewModel中的字段 _ProcessService 中的方法 GetProcessNow,獲取當前進程
      2. 用戶點擊「Step2:關閉該應用程序,摁下確認」 button => 調用AddProgressViewModel 中的字段 _ProcessService 中的方法 GetProcessNow(),獲取當前進程,並將兩個值傳入該字段的 GetDiffrentProcess() 方法,返回此段時間內不同的線程,即爲所求
      3. 用戶在ListView中選擇進程,在右側textBox輸入名稱後,點擊「Step3:關閉該應用程序,摁下確認」 button => 調用 AddProgressViewModel 中的字段 _LocalBlackListService 中的方法 AddNewBlackList(),將新進程存入本地數據庫,執行完畢後,addProgressPage 跳轉到 ViewProgressPage
  • Part 2 :

    • 所用模型 : MVVM

      • Model 層:
        同上
      • Service層 :
        同上
      • ViewModel層 :
      • View層
    • 流程:

      1. 用戶點擊添加進程 button => MainPage 跳轉到 CountDownPage ,在新頁面的Loaded 方法中創建類型爲Timer 的進程,更新頁面倒計時,並且傳遞BeginListenMessage, 執行CountDownViewModel中的登記好的線程

            public class CountDownViewModel : ViewModelBase{
                private Thread t1;
        
                ...
        
                public CountDownViewModel(){
                    //Refresh方法 : 監聽算法
                    t1 = Thread(Refresh);
        
                    ...
        
                    Messenger.default.registed<BeginListenMessage>(this, (message) =>{
        t1.start();
        });
                }
      2. Refresh方法 :

        1. 調用AddProgressViewModel 中的字段 _ProcessService 中的方法 GetProcessNow(),獲取當前進程

        2. 調用AddProgressViewModel 中的字段 _ProcessService 中的方法 IfBlackListProcessExist(),獲取當前進程是否有黑名單

        3. 若有 => 喚醒音樂播放(若音樂已播放,只調節音量),傳遞 Message 到 CountDownPage,修改Dispatcher的值 => 執行頁面彈出,進程掛起兩秒後繼續判斷
        4. 若無 => 若音樂播放,關閉音樂
      3. 兩線程將在點擊 提前完成放棄任務 按鈕後 / 時間運行到 00:00 後執行stop(),並將結果寫到數據庫,CountDownPage 跳轉到 MainPage


Thanks,Thats all.

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章