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

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

一個體現Java接口及工廠模式優點的例子

2019-11-18 13:38:23
字體:
來源:轉載
供稿:網友

  隨著模式概念的普及,了解模式和使用模式的程序員越來越多,很多人在學習模式的時候,都會有這樣一種迷惑:“有必要搞得這么復雜嗎?”。的確,因為教程的例子過于簡單化(這樣方便讀者學習),或者是作者選例子的時候并沒有很好體現所講模式的優點,很多情況下假如僅就其例子的問題來說,用模式是太復雜了。因此才導致這樣的誤解:“模式就是把簡單的問題復雜化嗎?”。當然不是,隨著你開發實踐的不斷豐富,你終會發現模式強大威力,而且模式也并非貴族化的編程方式,它就是一些經過提煉了的解決問題的方法技巧。

通過學習模式,程序員開始離別過去準直線式的代碼方式,模式開擴了我們的視野,強化了我們面向對象編程的思維方式。然而現在又出現了另一個普遍的問題,盲目應用模式。模式是問題的解決方案,先有問題才有模式,模式是依附于所要解決的問題的而生的。必須了解模式在很多情況下是以提高代碼的復雜度為代價來增強靈活性、可復用性。假如在自已的代碼中使用某一模式僅只提高了代碼的復雜度,而其它方面收效甚微,或者某部份代碼根本就不存在靈活性及高復用性的需求,那么我們就沒有必要為使用模式而放棄更直觀簡單的代碼寫法。

一流的高手90%精力關注問題的解決方案,因為找到了好的解決方案,再寫起代碼會很輕松代碼也簡潔流暢,看這樣的代碼是一種享受和提高;二流的熟手90%精力關注代碼實現,因為問題的解決方案并非最佳,實現的代碼也會比較復雜;三流菜鳥記流水帳,90%精力在敲鍵盤,經常做了大半才發現行不通,回過頭來再用90%的時間敲鍵盤,根本不會用到任何模式,寫出來的代碼的只有他自已才能看懂。做出來的軟件也是支離破碎,做一丁點改動都要大費周折,而且你還不知道改動后會產生什么問題,大有住危房里的感覺。

在這里還是舉一個濫用模式的例子吧。我曾參與過一個大集團公司OA系統的第二期開發,開發沿用原有代碼架構并增加新的功能模塊。文檔很少我讀原代碼時就被它程序里的代碼轉來轉去搞得頭大如斗,最后讀懂了:原代碼架構總體采用工廠模式,而且是最復雜的抽象工廠模式。它把所有模塊類都通過工廠生成還工廠套工廠,并且每一個模塊類都有一個接口,每個接口也只有一個模塊現實類,因為涉及權限控制還用了代理(PRoxy)模式?!∽x懂代碼后我開始嵌入代碼,發現每新增一個類,都要到六個java文件中去增加相應代碼,而在類中每增加一個方法,也要到它的接口等四個Java文件中去增加相應代碼。天呀?。?!記得當時我的小姆指常會不聽使喚,就是因為頻繁的使用Ctrl+C 、Ctrl+V,小姆指按著Ctrl鍵給累的。整個項目組苦不堪言,真煩透了。項目結束后我回顧發現:代理模式用得還對(現在針對權限這類橫向控制有AOP編程這種新的解決辦法了)但工廠模式在這里根本就是畫蛇添足,不僅沒有解決什么問題,反而增加代碼復雜度和耦合性,降低了開發效率連維護難度都提高了。而且那種每個類簡單的加一個接口的方式,更是沒有道理,這讓我很想說周星馳說過的一句話:“球~~~不是這么踢~~~~的,接口~~~不是這么用~~~的”。言歸正傳,我們先來看這樣一個常見問題:某系統需要支持多種類型的數據庫。用過Oracle、MSSQL等數據庫的人都知道,它們的SQL編寫方式都各有些不同。比如說Oracle的唯一標識自動+1字段用的是序列,MSSQL改一下字段屬性就成了,還有各種各自特有的SQL用法。為了支持多數據庫,難道我們要開發多套系統?當然NO。請看下面的解決方案。

即然數據庫存在多種,我們可以將系統中所有對數據庫的操作抽象出來,寫成一個個方法組合到一個類中,有幾種數據庫我們就寫幾個這樣的類。具體設計類圖如下:




簡要說明:
OracleDataOperate、SqlserverDataOperate、MySQLDataOperate,分別代表Oracle、Sqlserver、Mysql這三種數據庫的操作類。繼續自AbstractDataOperate
AbstractDataOperate是一個抽象類,包含了那些不同種類數據庫都是一樣代碼的操作方法。繼續自DataOperate
DataOperate是上面說的數據操作類的統一接口,只有兩個方法:取得一條記錄、插入一條記錄。
DataOperateFactory是一個工廠方法,統一用它的方法來得到數據庫操作類的實例。
SampleClass是我們系統的某個功能模塊的類。
People是一個實體類,代表一條記錄。三個字段 oid唯一標識符、name姓名、date生日。

具體說明:
1、所有系統功能模塊類只認DataOperat這個接口還不必管具體的實現類是OracleDataOperate還SqlserverDataOperate。DataOperate源代碼如下:
public interface DataOperate {
//根據記錄的唯一標識取出一條記錄
People getPeople(String oid);
//插入一條記錄
boolean insertPeople(People people);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久综合久中文字幕青草| 操人视频在线观看欧美| 久久久久久久久久久人体| **欧美日韩vr在线| 午夜美女久久久久爽久久| 另类天堂视频在线观看| 久久久噜噜噜久久中文字免| 国产裸体写真av一区二区| 亚洲成人久久电影| 亚洲一区中文字幕| 久久久www成人免费精品| 亚洲区中文字幕| 亚洲国产日韩欧美在线动漫| 日韩电影中文字幕av| 欧美性猛交xxxx富婆弯腰| 日韩av最新在线观看| 人人做人人澡人人爽欧美| 97精品国产91久久久久久| 亚洲国产欧美日韩精品| 91香蕉国产在线观看| 国产一区视频在线播放| 亚洲欧美日韩精品久久亚洲区| 国产网站欧美日韩免费精品在线观看| 亚洲女成人图区| 日韩性生活视频| 尤物yw午夜国产精品视频| 日产精品久久久一区二区福利| 日韩欧美中文字幕在线观看| 色无极亚洲影院| 亚洲最大成人网色| 国产精品第2页| 欧美大尺度电影在线观看| 久久免费视频在线| 亚洲国产精品成人va在线观看| 色综久久综合桃花网| 日本一欧美一欧美一亚洲视频| 成人观看高清在线观看免费| 国产精品看片资源| 国产精品草莓在线免费观看| 色婷婷久久一区二区| 国产欧美一区二区三区久久| 国内精品美女av在线播放| 一本色道久久综合狠狠躁篇怎么玩| 成人黄色大片在线免费观看| 最好看的2019的中文字幕视频| 精品日韩美女的视频高清| 欧美国产视频一区二区| 欧美日韩成人在线播放| 国产视频亚洲精品| xvideos成人免费中文版| 国产999精品久久久| 欧美精品成人在线| 久久的精品视频| 美女视频黄免费的亚洲男人天堂| 久久久噜噜噜久久| 亚洲丁香婷深爱综合| 亚洲а∨天堂久久精品喷水| 久久天天躁狠狠躁夜夜躁| 中文字幕九色91在线| 欧美第一黄色网| 俺去了亚洲欧美日韩| 色无极影院亚洲| 久久久久久香蕉网| 91av视频在线| 亚洲午夜女主播在线直播| 成人xxxx视频| 亚洲精品99999| 欧美裸体男粗大视频在线观看| 精品国偷自产在线视频99| 欧美黑人一级爽快片淫片高清| 欧美xxxx做受欧美.88| 精品亚洲aⅴ在线观看| 国语自产精品视频在线看| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕亚洲一区| 亚洲电影免费观看高清| 欧美黑人性视频| 亚洲欧美日韩精品久久奇米色影视| 久久精品亚洲精品| 亚洲视频自拍偷拍| 日韩电影中文字幕一区| 欧美日韩中文字幕日韩欧美| 91在线免费观看网站| 国产亚洲综合久久| 欧美精品第一页在线播放| 狠狠做深爱婷婷久久综合一区| 国模吧一区二区三区| 中文字幕日韩欧美在线视频| 国产区精品视频| 国产精品福利观看| 欧美天堂在线观看| 国产日本欧美一区二区三区在线| 日韩精品在线播放| 91sa在线看| 国产不卡精品视男人的天堂| 久久久久久久激情视频| 久久视频在线观看免费| 欧美黑人巨大精品一区二区| 欧美性猛交xxxx久久久| 国产91成人在在线播放| 久久久久日韩精品久久久男男| 中文字幕日韩av综合精品| 中文字幕国内精品| 亚洲国产婷婷香蕉久久久久久| 国产在线视频2019最新视频| 伊人青青综合网站| 亚洲精品久久久久中文字幕欢迎你| 日韩av中文字幕在线免费观看| 欧美激情精品久久久久久大尺度| 国产成人精品久久亚洲高清不卡| 一本大道亚洲视频| 中文字幕少妇一区二区三区| 精品视频偷偷看在线观看| 国产精品一区二区三区成人| 久久亚洲精品成人| 亚洲天堂第二页| 久久久久久亚洲精品中文字幕| 日韩av在线免费观看一区| 欧美美女15p| 日韩av高清不卡| 日韩亚洲成人av在线| 欧美人成在线视频| 亚洲精品网站在线播放gif| 国产视频久久网| 另类视频在线观看| 亚洲欧美一区二区三区四区| 国产成人精品日本亚洲专区61| 欧美激情久久久| 亚洲偷熟乱区亚洲香蕉av| 亚洲国产精品视频在线观看| 国产成人精品久久亚洲高清不卡| 2019中文字幕在线观看| 成人国产精品色哟哟| 久久久久久久一区二区| 亚洲www永久成人夜色| 亚洲精品国产福利| 亚洲最大福利网| 日本成熟性欧美| 91精品视频免费| 欧美韩国理论所午夜片917电影| 在线观看日韩欧美| 亚洲成人aaa| 久久久人成影片一区二区三区| 成人在线观看视频网站| 亚洲精品国精品久久99热一| 色吧影院999| 国产精品国产福利国产秒拍| 色与欲影视天天看综合网| 97色在线观看免费视频| 国产成人小视频在线观看| 国产精品69av| 日本欧美精品在线| 国产精品美女无圣光视频| 在线亚洲午夜片av大片| 国产做受高潮69| 97激碰免费视频| 国产精品999| 日韩亚洲国产中文字幕| 日韩欧美在线视频日韩欧美在线视频| 国模吧一区二区| 亚洲美女在线看| 国产精品18久久久久久麻辣| 国模私拍视频一区| 青青青国产精品一区二区|