
和你一起终身学习,这里是程序员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等。
二、事件动机模式的性质
性质一:事件动机模式中,只存在外部关系模块调用子模块,不存在子模块调用外部关系模块,也不存在子模块调用其他子模块。
性质二:事件动机模式中,子模块只存在这六类供外部关系模块调用的方法:
new XxxManager();子模块的构造器。例如new FileManager();
void setListener();子模块设置监听器。例如Activity中登录按钮设置OnClickListener;
Data get();从子模块获取数据。例如Activity中获取编辑框内编辑的文本,再例如FileManager从文件读取文本;
void set(Data);将数据刷新到子模块。例如Activity将String刷新到TextView文本框,再例如FileManager将文本保存到文件;
void request(Data, OnResponseListener);子模块执行耗时任务。例如网络模块执行Http请求;
生命周期控制方法;控制子模块的生命周期。例如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

最低0.47元/天 解锁文章
299

被折叠的 条评论
为什么被折叠?



