每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

          key words :面向接口編程

          面向對象設計里有一點大家已基本形成共識,就是面向接口編程,我想大多數(shù)人對這個是沒有什么覺得需要懷疑的。

          問題是在實際的項目開發(fā)中我們是怎么體現(xiàn)的呢? 難道就是每一個實現(xiàn)都提供一個接口就了事了?反過來說,你有時候有沒有覺得接口是多余的事? 又或者,你僅僅是覺得現(xiàn)在類似spring這樣的框架已習慣用接口這種方式而心存當然。

          設計模式解析里提到了面向對象設計考慮的幾個視角,一個是概念層,一個是規(guī)約層,一個是實現(xiàn)層。我如果沒有猜錯的話,實際上我們大多數(shù)人的眼睛一直是盯著實現(xiàn)層的,而這正是面向對象設計所極力避免的,即你不要在一開始就關注這些細節(jié),你要關注的是規(guī)約(接口).

          對于實際項目開發(fā)來說,如果我們把實現(xiàn)的過程分為多個階段的話我們不妨這么劃分,第一階段,根據(jù)client端的需要去設計我們的規(guī)約(interface),在這個階段任何實現(xiàn)都沒有,所有的任務就是定義接口所需要的職責,以及所需要的一些po,vo;第二階段,實現(xiàn)前面定義的規(guī)約。而以前我是怎么做的呢? 我是交叉作的,即假模假樣的定義一個接口(其實我心里在想這個東西有屁用),然后定義了一個方法,然后就立即去實現(xiàn)這個方法,再然后我又定義一個方法,繼續(xù)去實現(xiàn),我現(xiàn)在終于想通了,這樣好累,效率很低,最重要的是,這不屬于真正的設計。
          現(xiàn)在我是怎么做的呢?比如一個list.jsp里需要查詢,列表,然后看明細信息,然后增加信息,我會第一步在接口里定義完(這個過程會有整體設計的意識),毫不關心底層實現(xiàn)(數(shù)據(jù)庫、事務),我的目標就是"我想要這個功能,我想要那個功能",至于那個功能怎么實現(xiàn)在第一階段我認為那不是我的事情(盡管這個事情最終還是由我來做) .大家看這個過程和前面的過程有什么本質的不同呢? 就是分層的概念更加明顯,你的工作更有層次,每次都有先設計再實現(xiàn)的步驟,而前面那個過程很容易就讓你不知不覺地陷入純實現(xiàn)的陷阱中。

          一點感想,歡迎大家拍磚。

          posted on 2007-03-12 00:40 Alex 閱讀(12415) 評論(18)  編輯  收藏 所屬分類: java建模

          評論

          # re: 真正理解面向接口編程 2007-03-12 02:56 sinoly
          不管是面向什么編程都好,在不同的環(huán)境下,每一種方式都有自己的特點。
          這種環(huán)境包含項目組的也包含客戶方的還有公司管理方面的等等。。。
          需要在不斷的比較中確定。。。。
          就像Java/C/Ruby/PHP等等,比較語言的優(yōu)劣都是沒有意義的。最重要的是實際情況分析!  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-03-12 20:03 azure
          接口,就是對接的端口,模塊與模塊之間約定建立的交通路線。  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-03-20 13:17 lemonxd
          覺得說的很對,我是個編程初學者,看了之后有很有體會。以前設計的時候總是想著實現(xiàn),結果忽略了設計。所以……
            回復  更多評論
            

          # re: 真正理解面向接口編程 2007-03-29 16:37 wahaha
          講的有道理...
          不過在設計的時候很難不去想到實現(xiàn)的場景  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-04-30 18:02 我們走在JAVA的光明大道上
          LZ說的太有 同感了,
          剛開始就是為了有個接口而去搞個自認為多余的接口,然后馬上實現(xiàn)他,哈!今天突然對接口有很大感悟,搜索到LZ這文章,真是一大幸事!  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-05-24 14:47 hh-lux
          作者的意思是接口是使設計者和編程者分離吧。確實是這樣,只是當我們自己開發(fā)系統(tǒng)時,自己即是設計者,又是編程者,作者的想法是對的。  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-06-12 22:36 lxf
          @hh-lux
          意思是為了讓使用和實現(xiàn)分離.  回復  更多評論
            

          # re: 真正理解面向接口編程 2007-11-20 16:41 yicong
          很正確,尤其認同那句“(其實我心里在想這個東西有屁用)”,哈哈哈哈。
          我也經(jīng)常這樣搞,然后就屁顛屁顛的去實現(xiàn)。哈哈哈哈  回復  更多評論
            

          # re: 真正理解面向接口編程 2008-05-15 10:42 孤鷹
          接口,就是一種規(guī)則,規(guī)定了我們在系統(tǒng)中應該實現(xiàn)的和必須實現(xiàn)的功能。  回復  更多評論
            

          # re: 真正理解面向接口編程 2008-06-14 10:21
          好,這樣做感覺更能去解決一些問題。不再那么盲目了  回復  更多評論
            

          # re: 真正理解面向接口編程[未登錄] 2009-02-18 17:15 呵呵
          好,確實不錯。用同感  回復  更多評論
            

          # re: 真正理解面向接口編程 2009-07-04 15:39 123
          一直以來都對面向接口編程理解的不夠,不知道什么是面向接口編程
          只知道接口是一種規(guī)范,延遲方法的實現(xiàn)
          要學習學習....  回復  更多評論
            

          # re: 真正理解面向接口編程 2009-07-22 21:24 嘻嘻哈哈
          隨著工業(yè)軟件的規(guī)模的越來越大, 同一個項目中參與的程序員越來越多。于是面臨管理難度,所以應當先把框架搭好,通過框架來規(guī)范項目實現(xiàn)的目標,就是面向接口編程的思想。  回復  更多評論
            

          # re: 真正理解面向接口編程 2009-08-04 17:06 Supporter
          感覺很正確,頂!!!  回復  更多評論
            

          # re: 真正理解面向接口編程 2010-11-05 14:11 kangdy
          很有同感啊。轉了。  回復  更多評論
            

          # re: 真正理解面向接口編程 2013-06-25 12:59 再進一點
          我發(fā)現(xiàn)總是先去想需要什么功能,這個功能怎么實現(xiàn),然后需要怎么樣的接口,不知道這和lz的想法怎么靠近。  回復  更多評論
            

          # re: 真正理解面向接口編程 2013-07-26 14:18 OnTheRoad_Lee
          嗯,很認同LZ的看法,面向接口編程主要是讓我們的工作更有層次感,先有整體的設計(設計者),再有具體的實現(xiàn)(實現(xiàn)者),
          只是在天朝這樣的國度,我們挨踢民工是全能的,一條龍服務,既當設計者,又要當實現(xiàn)者(設計完之后,還是得你自己來實現(xiàn))。
          目前還沒有體驗到接口設計的便利性也好,整體性也好,層次感也好,不過了解了,  回復  更多評論
            

          # re: 真正理解面向接口編程 2013-07-26 14:20 OnTheRoad_Lee
          這位站在更高層次說面向接口編程,很贊同,只是目前還沒有體會到,小公司@嘻嘻哈哈
            回復  更多評論
            

          主站蜘蛛池模板: 连南| 本溪市| 荔波县| 安阳市| 鹤山市| 永康市| 通河县| 余干县| 宁德市| 安阳市| 泾源县| 达拉特旗| 安义县| 石台县| 阿拉善右旗| 屯留县| 松桃| 疏附县| 茂名市| 于都县| 斗六市| 莫力| 江川县| 襄樊市| 和平区| 阳朔县| 五寨县| 什邡市| 左云县| 西平县| 陵川县| 商河县| 永平县| 涟水县| 竹北市| 徐州市| 邹平县| 乐平市| 武冈市| 自治县| 时尚|