編輯:關於Android編程
命令(模式)的結構很簡單,但對於消除代碼間的耦合卻有著重要的影響。
在 C 語言中我們經常使用回調函數,而命令模式是回調( callback )的面向對象的替代物。從最直觀的角度來看,命令模式就是一個函數對象:一個作為對象的函數。通過將函數封裝為對象,就能夠以參數的形式將其傳遞給其他函數或者對象,告訴他們在履行請求的過程中執行特定的操作。可以說,命令模式是攜帶行為信息的信使。
命令模式對於構建 GUI 應用有特別重要的意義,比如菜單的響應,使用 MFC 時我們通過一系列的 on_command 宏來關聯菜單操作,而如果采用命令模式和工廠模式,將可以得到更精巧的實現。
意圖
class CommandObject { public: CommandObject(){} virtual ~CommandObject(){} virtual void execute() = 0; }; class EchoCommand: public CommandObject { public: void execute() { cout << "I\'m echo command"; } }; class HelloCommand: public CommandObject { public: void execute() { cout << "Hello hello, how are you"; } };我們可以把 EchoCommand 和 HelloCommand 兩個命令對象傳遞出去,其他部分的代碼只需要知道在特定條件發生時有對象執行命令,而無需知道是誰、在執行什麼命令。
接下來看另外一個有點實際意義的例子。假如我們實現一個 GUI 程序,主頁面上有多個按鈕,點擊按鈕後會執行一個命令,如打開新窗口、打開浏覽器、打開文件夾、退出程序之類的。
命令模式實例2
class CPushButton : public IButton { public: void setCommandObject(CommandObject * commandObject){ if(m_pCommand) { delete m_pCommand; } m_pCommand = commandObject; } void onClicked() { m_pCommand->execute(); } private: CommandObject * m_pCommand; };我們可以把按鈕的信息寫在配置文件中,如名字、圖標、位置等,而每個按鈕要執行的命令通過一個字符串表示,也寫在配置文件中。程序啟動時解析配置文件,生成界面,根據配置文件中的命令字符串通過工廠模式創建一個命令對象並與按鈕關聯(如上面的代碼所示,通過 setCommandObject 方法給按鈕設置命令對象),這樣一個極具擴展性的程序就完成了。
接下來會介紹工廠模式,結合單例模式、命令模式,實現一個有意義的例子。
最近閒著沒事做了一個Android小程序,具體如下:效果圖:原始界面點擊按鈕運行 運行後界面實現代碼:public class Mai
本文實例為大家分享了Android分類側滑菜單的制作方法,供大家參考,具體內容如下classificmenuActivity.java代碼:package com.sis
Google已經建議Android開發全部轉向Android Studio開發,Android Studio 是使用gradle編譯、打包的,那麼問題來了,gradle可
其實Android studio的出現很大程度上方便了我們Android開發人員,今天我們說說怎麼構建我們自己的庫。依次按File->New Moudle->