Android学习按键事件监听与Command模式
Android學(xué)習(xí)按鍵事件監(jiān)聽與Command模式 - Dufresne - 博客園
Android學(xué)習(xí)按鍵事件監(jiān)聽與Command模式
?
一 Command模式
意圖:
將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;
對請求排隊或記錄請求日志,以及支持可撤銷的操作。
將請求被封裝成一個對象,當(dāng)向某對象提交請求時,使我們可以不用去知道被具體的請求的操作或者請求的接收者,
實(shí)現(xiàn)了動作的請求者對象和動作的執(zhí)行者對象之間的解耦合。
適用性:
(何為事務(wù)參考:http://book.51cto.com/art/201202/319377.htm)
結(jié)構(gòu):
??????
說明:
Command:命令的封裝者,聲明命令執(zhí)行的操作接口;
ConcreteCommand:使命令的具體接收者執(zhí)行相應(yīng)的動作;
Invoke:發(fā)出執(zhí)行該命令的請求,存儲具體命令執(zhí)行者的抽象父類;
Receiver:實(shí)施與執(zhí)行具體相關(guān)請求的具體操作,由命令對象創(chuàng)建者指定;
?
通過此圖可以到此模式的核心:實(shí)現(xiàn)操作對象的調(diào)用Invoke與具體實(shí)施該操作的對象Receiver之間解耦,
是通過增加Command,將動作執(zhí)行委托給Command來執(zhí)行調(diào)用真正的動作執(zhí)行者。
?
二 Android中OnClickListener
在View類中:
public interface OnClickListener {
void onClick(View v);
}
作用:Interface definition for a callback to be invoked when a view is clicked.
就是一個click事件的回調(diào)接口。
在需要響應(yīng)click事件的View中,都需要注冊一個相應(yīng)的ClickListener來監(jiān)聽click事件發(fā)生時被調(diào)用。
看一下面這段代碼:Button控件
public class MyActivity extends Activity { protected void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.content_layout_id);final Button button = (Button) findViewById(R.id.button_id);//注冊click事件監(jiān)聽器 button.setOnClickListener(new View.BtnOnClickListener());} private class BtnOnClickListener extends OnClickListener{ public void onClick(View v) {// Perform action on click}} }
?
看一下相應(yīng)的這個結(jié)構(gòu):?
?
這里面View就是Invoke,OnClickListener就是Command,MyActivity就是Receiver。
執(zhí)行過程如下:
?
可以看到這種方式的應(yīng)用屬于:
Command模式替換Callback函數(shù)形式的回調(diào)模型,讓框架結(jié)構(gòu)變得更清晰更靈活。
轉(zhuǎn)載于:https://www.cnblogs.com/seven1979/p/4305829.html
總結(jié)
以上是生活随笔為你收集整理的Android学习按键事件监听与Command模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专升本数据结构复习
- 下一篇: 点云数据(point cloud)