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.

这里写图片描述

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