Android事件动机模式

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、事件动机模式简介
二、事件动机模式的性质
三、事件动机模式的Java桌面程序版
四、事件动机模式的Android版
五、事件动机模式的原理
5.1 对方法进行拆解封装重构
5.2 事件是程序执行的动机
5.3 子模块的内部结构与外部关系
5.4 事件动机模式Android版实现的技巧
5.5 纯计算
5.6 事件动机模式的数据流图
六、项目举例

一、事件动机模式简介

事件动机模式是一种架构模式。
事件动机模式的程序包含多个子模块、一个外部关系模块和一个纯计算工具类。
常见的子模块有 Activity、Dialog、Toast、Fragment、SharedPreferences、FileManager、SqliteManager、HttpUtil、LocationManager等。

二、事件动机模式的性质

性质一:事件动机模式中,只存在外部关系模块调用子模块,不存在子模块调用外部关系模块,也不存在子模块调用其他子模块。
性质二:事件动机模式中,子模块只存在这六类供外部关系模块调用的方法:

  1. new XxxManager();子模块的构造器。例如new FileManager();

  2. void setListener();子模块设置监听器。例如Activity中登录按钮设置OnClickListener;

  3. Data get();从子模块获取数据。例如Activity中获取编辑框内编辑的文本,再例如FileManager从文件读取文本;

  4. void set(Data);将数据刷新到子模块。例如Activity将String刷新到TextView文本框,再例如FileManager将文本保存到文件;

  5. void request(Data, OnResponseListener);子模块执行耗时任务。例如网络模块执行Http请求;

  6. 生命周期控制方法;控制子模块的生命周期。例如Activity中startXxxActivity()、mActivity.finish(),再例如mFileManager.open(filename)、mFileManager.close()。

三、事件动机模式的Java桌面程序版

任何Java桌面应用程序,都可以通过重构得到例子A这种形式的外部关系模块:
例子A:

public class XxxExternalRelations {
    ViewManager mViewManager;
    FileManager mFileManager;
    GpsManager mGpsManager;
    GeocoderManager mGeocoderManager;
    public XxxExternalRelations(Object param) {
        mViewManager = new ViewManager();
        mFileManager = new FileManager();
        mGpsManager = new GpsManager();
        mGeocoderManager = new GeocoderManager();
        mViewManager.setOnVvvListener((vparam) -> {
            // 调用mViewManager, mFileManager, HttpUtil, mGpsManager, mGeocoderManager, PureCalculation
        });
        mFileManager.setOnFffListener((fparam) -> {
            // 调用mViewManager, mFileManager, HttpUtil, mGpsManager, mGeocoderManager, PureCalculation
        });
        mGpsManager.setOnGggListener((gparam) -> {
            // 调用mViewManager, mFileManager, HttpUtil, mGpsManager, mGeocoderManager, PureCalculation
        });
    }
}

也就是说程序是这样执行的:先创建子模块并且给子模块设置监听器,然后等待事件的发生来执行其他代码。

四、事件动机模式的Android版

任何Android程序,都可以通过重构得到下面这种形式(下面的代码都可在“项目举例”的ProgramStructureGPS_20210630.zip项目文件中阅读):
ActivityLifecycleListener.java


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值