Lovely Mother - 个人技术文档 - Zyuu

本文档详细介绍了使用MVVM架构实现进程黑名单管理的过程,包括添加黑名单进程及惩罚模式的具体实现步骤。通过用户交互触发不同操作,如添加黑名单进程、设置惩罚模式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

负责任务:
  1. 组间协调(被漫画师骂,被项目经理骂,被技术主管骂,被冲刺经理骂)
  2. 需求分析(提出一堆没什么用的东西)
  3. 系统主要业务(队友搭好了架构之后为所欲为)
  4. 客户端架构(不动脑子写代码)
  5. 重构(不动脑子写代码的结果)

一、用例分析
  • Part 1 :
    • 功能主题 : 添加自设的进程黑名单
    • 角色 : 用户
    • 触发条件 :
      • 用户进入「查看黑名单」模式
      • 点击了「添加新进程」按钮
  • Part 2 :
    • 功能主题 : 点击开始后,进入「惩罚」模式
    • 角色 : 用户
    • 触发条件 :
      • 用户设置时间大于1minute
      • 用户在开始界面摁下了开始按钮
二、技术说明书
  • 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();
      

    });
    }
    ```

    1. Refresh方法 :

      1. 调用AddProgressViewModel 中的字段 _ProcessService 中的方法 GetProcessNow(),获取当前进程

      2. 调用AddProgressViewModel 中的字段 _ProcessService 中的方法 IfBlackListProcessExist(),获取当前进程是否有黑名单

      3. 若有 => 唤醒音乐播放(若音乐已播放,只调节音量),传递 Message 到 CountDownPage,修改Dispatcher的值 => 执行页面弹出,进程挂起两秒后继续判断

      4. 若无 => 若音乐播放,关闭音乐

    2. 两线程将在点击 提前完成放弃任务 按钮后 / 时间运行到 00:00 后执行stop(),并将结果写到数据库,CountDownPage 跳转到 MainPage


Thanks,Thats all.

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值