[](https://gitee.com/vip204888/java-p7)5.事件动机模式的原理
=========================================================================
[](https://gitee.com/vip204888/java-p7)5.1 对方法进行拆解封装重构
-----------------------------------------------------------------------------
对方法进行拆解封装重构的例子:
void functionX() {
sentenceA();
functionB();
functionC();
}
private void functionB() {
sentenceD();
functionE();
}
private void functionE() {
sentenceF();
}
private void functionC() {
sentenceG();
sentenceH();
}
对方法functionX()拆解封装重构之后得到:
void functionX() {
sentenceA();
sentenceD();
sentenceF();
sentenceG();
sentenceH();
}
重构之前,functionX()方法调用语句sentenceF()形成的栈是:
functionX() > functionB() > functionE() > sentenceF();
重构之后,functionX()方法调用语句sentenceF()形成的栈是:
functionX() > sentenceF();
[](https://gitee.com/vip204888/java-p7)5.2 事件是程序执行的动机
----------------------------------------------------------------------------
例如,点击登录按钮执行登录这个过程,是点击事件导致了登录请求的执行。
再例如,点击桌面图标启动某个App这个过程,是点击事件导致了某个Activity的创建。
再例如,应用收到一个透传的推送消息而弹出某个提示这个过程,是网络消息事件导致程序的执行。
于是得到命题一,**命题一**:事件是程序执行的动机。
事件是程序执行的动机,意味着程序的方法栈的栈底是一个事件方法。
例如,执行登录网络请求时,程序的方法栈是:
onClick() > requestLogin() > HttpUtil.login();
其中onClick()就是登录按钮的OnClickListener监听器的事件方法。
对onClick()方法进行拆解封装重构之后,requestLogin()就消除了,执行登录网络请求的方法栈变为:
onClick() > HttpUtil.login();
于是得到结论A,**结论A**:对事件方法进行拆解封装重构之后,程序调用各个子模块的方法都是事件方法。
[](https://gitee.com/vip204888

最低0.47元/天 解锁文章
315

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



