亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

什么是接口(入門篇)——使你的程序功能豐富

2019-11-14 15:45:21
字體:
來源:轉載
供稿:網友

重復勞動

在一個主項目中,經常會放置多個子功能的入口,這些入口有可能是按鈕,有可能是下拉菜單。

初始開發起來,肯定很輕松,在界面上放置一個按鈕,給它一個名字,然后到他的Click事件中編寫一段代碼,讓子功能的界面彈出。

但是隨著子功能的不斷變多,這個毫不起眼的幾個小工作,我們在不停重復的進行。

最頭疼的是,突然有一天,你的PM跟你說,這個界面不要了,或者是這個子功能的入口換成另一個窗體的時候,你已經不記得這不起眼的幾行代碼在哪里了。

問題出在哪?

這樣的設計模式,也是初學者最容易走的開發方式。

我們從邏輯上來分析,功能模塊應該是由其自身決定在界面上顯示什么內容,自己應該以何種方式被打開。

想象一下我們的Windows操作系統,每一個程序的圖標,以及圖標上的文字,都應當由程序各自來決定,而不是操作系統,只有這樣,這些圖標、文字、甚至于其存在,都可以輕松得進行修改。

使用接口將屬于"子功能"的功能還給"子功能"

我們可以模仿Windows的做法,比如圖標啦、文字啦、以及打開后"要做什么事",這些東西全部做成一個接口

 1 /// <summary> 2 /// 定義一個接口,用于描述一個子功能模塊 3 /// </summary> 4 public interface ISubMoudle 5 { 6     /// <summary> 7     /// 功能名稱 8     /// </summary> 9     string ModuleName { get; }10 11     /// <summary>12     /// 圖標文件的路徑,若不使用圖標,則返回空字符或null13     /// </summary>14     string ICONPath { get; }15 16     /// <summary>17     /// 打開這個功能模塊18     /// </summary>19     void Open();20 }

我們以后制作的所有子功能模塊都實現該接口,舉個例子

 1 /// <summary> 2 /// 一個顯示當前時間的子功能 3 /// </summary> 4 public class ShowTimeMoudle :ISubMoudle 5 { 6  7     public string ModuleName 8     { 9         get { return "顯示時間"; }10     }11 12     public string ICONPath13     {14         get { return ""; }15     }16 17     public void Open()18     {19         Console.WriteLine(DateTime.Now.ToString());20     }21 }

功能內的主要內容,都在Open方法中體顯。

使用子功能

子功能已經定義好了

讓我們來趕緊使用它吧

首先,要主功能模塊中,我們要有一個列表

列表中詳細地記錄了所有的ISubMoudle對像

然后,我們動態地,將這些內容輸出到一個窗體、一個控制臺或一個Web中去,我們以控制臺為例

 1         static void Main(string[] args) 2         { 3             List<ISubMoudle> moudleList = new List<ISubMoudle>(); 4             moudleList.Add(new ShowTimeMoudle()); 5  6             //開始將moudleList中的所有功能開始輸出 7             for (int i = 0; i < moudleList.Count; i++)  8             { 9                 Console.WriteLine("{0} : {1}", i + 1, moudleList[i].ModuleName);10             }11 12             Console.ReadLine();13         }

進入子功能

子功能已經動態地顯示出來了,我們準備使用前面對應的數字,進行各個自功能。

其實就是,我們分析錄入的字符,轉化為數字類型,在moudleList中對找對應的位置,然后調用其Open()方法

 1             List<ISubMoudle> moudleList = new List<ISubMoudle>(); 2             moudleList.Add(new ShowTimeMoudle()); 3  4             //開始將moudleList中的所有功能開始輸出 5             for (int i = 0; i < moudleList.Count; i++)  6             { 7                 Console.WriteLine("{0} : {1}", i + 1, moudleList[i].ModuleName); 8             } 9 10             string cmd = Console.ReadLine();11             int j = int.Parse(cmd);12             ISubMoudle moudle = moudleList[j - 1];13             moudle.Open();14 15             Console.ReadLine();

10 - 13行是追加的代碼

測試

 

結尾

以上,就是演示了接口的另一種用法 : 動態地擴展你的程序,將你開發的關注點僅僅放在功能模塊內部

在這里,我們以運行時的方式,將所有的子模塊輸出到了控制臺界面上:

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费人成网站在线观看18| 欧美老少做受xxxx高潮| 欧美一级黑人aaaaaaa做受| 日韩日本欧美亚洲| 欧美一级高清免费播放| 亚洲人成在线电影| 欧美精品激情在线| 97在线观看免费高清| 岛国av一区二区三区| 亚洲国产精品高清久久久| 亚洲第一区在线| 91久久精品国产| 国产精品视频26uuu| 一本色道久久综合亚洲精品小说| 久久精品99无色码中文字幕| 国产中文字幕亚洲| 日韩免费观看网站| 久久国产天堂福利天堂| 国产精品三级网站| 国产国产精品人在线视| 欧美日韩国产中文字幕| 国语自产精品视频在线看一大j8| 性欧美xxxx视频在线观看| 成年无码av片在线| 亚洲色图av在线| 丰满岳妇乱一区二区三区| 久久久精品免费视频| 欧美亚洲国产另类| 日韩在线观看免费全| 欧美激情a在线| 91免费看国产| 深夜福利亚洲导航| 亚洲第一天堂无码专区| 久久99国产精品自在自在app| 日本精品性网站在线观看| 国产精品视频中文字幕91| 日韩经典中文字幕在线观看| 国产精品va在线播放我和闺蜜| 亚洲一区二区三区在线视频| 久久精品99久久香蕉国产色戒| 色婷婷久久一区二区| 国产精品久久电影观看| 日韩欧美在线中文字幕| 隔壁老王国产在线精品| 亚洲人永久免费| 精品动漫一区二区| 亚洲色图偷窥自拍| 日韩成人中文字幕| 欧美影院在线播放| 欧美精品久久久久久久久久| 狠狠躁夜夜躁久久躁别揉| 亚洲亚裔videos黑人hd| 久久夜色精品亚洲噜噜国产mv| 中文字幕日韩精品在线| 日韩免费视频在线观看| 国产精欧美一区二区三区| 亚洲一区美女视频在线观看免费| 日韩中文字幕在线播放| 中文字幕欧美视频在线| 亚洲国产精品va在线| 国内精品伊人久久| 亚洲精品中文字幕女同| 最新日韩中文字幕| 国产v综合v亚洲欧美久久| 国产精品久久国产精品99gif| 国产91九色视频| 久久综合久久美利坚合众国| 国产精品美女www爽爽爽视频| 成人精品视频久久久久| 亚洲精品国产精品国自产观看浪潮| 亚洲国产第一页| 92看片淫黄大片看国产片| 欧美日韩亚洲精品内裤| 黄网站色欧美视频| 国产精品第2页| 亚洲女人初尝黑人巨大| 亚洲人成网站777色婷婷| 欧美成人激情视频| 91po在线观看91精品国产性色| 久久大大胆人体| 欧美中文在线视频| 国产精品手机播放| 亚洲欧美日韩在线高清直播| 岛国视频午夜一区免费在线观看| 91国在线精品国内播放| 欧美性猛交xxxx乱大交3| 午夜精品理论片| 久久久久久久久久久免费| 91精品久久久久久久久久久| 日韩美女免费观看| 国产成人黄色av| 国产美女91呻吟求| 2019亚洲日韩新视频| 精品人伦一区二区三区蜜桃网站| 国外视频精品毛片| 成人乱人伦精品视频在线观看| 欧美精品在线第一页| 精品爽片免费看久久| 亚洲精品视频在线观看视频| 亚洲黄在线观看| 国产精品亚洲视频在线观看| 日韩高清电影免费观看完整版| 久久久国产精彩视频美女艺术照福利| 国产精品ⅴa在线观看h| 亚洲精品之草原avav久久| 国产日韩欧美电影在线观看| 欧美午夜精品久久久久久浪潮| 国产精品久久久久一区二区| 18性欧美xxxⅹ性满足| 欧美日韩国产色视频| 国产成人精品久久亚洲高清不卡| 欧美亚洲另类在线| 91亚洲精品在线| 成人国产在线视频| 国产精品一区二区久久| 国产精品www色诱视频| 亚洲免费av片| 成人网欧美在线视频| 久久精品久久精品亚洲人| 热久久视久久精品18亚洲精品| 欧美午夜激情在线| 久久精品福利视频| 国产欧美精品一区二区三区介绍| 91精品美女在线| 亚洲国产又黄又爽女人高潮的| 一区二区三欧美| 2020欧美日韩在线视频| 欧美黄色性视频| 亚洲一区中文字幕| 国产精品美女免费| 韩国三级电影久久久久久| 7m精品福利视频导航| 精品久久久久久久久久久久久| 91系列在线观看| 亚洲最大的免费| 久久视频在线观看免费| 国产成人精品电影久久久| 国产又爽又黄的激情精品视频| 国语自产精品视频在线看一大j8| 精品福利视频导航| 国产精品成人aaaaa网站| 人人爽久久涩噜噜噜网站| 成人性生交大片免费观看嘿嘿视频| 国产精品视频网址| 色偷偷av一区二区三区乱| 日韩中文字幕免费视频| 国产免费一区二区三区在线能观看| 国产日韩在线播放| 欧美一级大片视频| 在线成人一区二区| 5278欧美一区二区三区| 亚洲另类欧美自拍| 亚洲第一综合天堂另类专| 国产亚洲精品美女久久久久| 国产精品露脸自拍| 亚洲乱码av中文一区二区| 日韩免费av一区二区| 欧美日韩国产一区二区三区| 久久国产精品免费视频| 日韩福利在线播放| 色多多国产成人永久免费网站| 国产精品欧美久久久| 另类少妇人与禽zozz0性伦| 欧美黑人一级爽快片淫片高清|