真正理解面向介面編程

來源:互聯網
上載者:User
物件導向設計裡有一點大家已基本形成共識,就是面向介面編程,我想大多數人對這個是沒有什麼覺得需要懷疑的。問題是在實際的項目開發中我們是怎麼體現的呢? 難道就是每一個實現都提供一個介面就了事了?反過來說,你有時候有沒有覺得介面是多餘的事? 又或者,你僅僅是覺得現在類似spring這樣的架構已習慣用介面這種方式而心存當然。 設計模式解析裡提到了物件導向設計考慮的幾個視角,一個是概念層,一個是規約層,一個是實現層。我如果沒有猜錯的話,實際上我們大多數人的眼睛一直是盯著實現層的,而這正是物件導向設計所極力避免的,即你不要在一開始就關注這些細節,你要關注的是規約(介面).對於實際項目開發來說,如果我們把實現的過程分為多個階段的話我們不妨這麼劃分,第一階段,根據client端的需要去設計我們的規約(interface),在這個階段任何實現都沒有,所有的任務就是定義介面所需要的職責,以及所需要的一些po,vo;第二階段,實現前面定義的規約。而以前我是怎麼做的呢? 我是交叉作的,即假模假樣的定義一個介面(其實我心裡在想這個東西有屁用),然後定義了一個方法,然後就立即去實現這個方法,再然後我又定義一個方法,繼續去實現,我現在終於想通了,這樣好累,效率很低,最重要的是,這不屬於真正的設計。現在我是怎麼做的呢?比如一個list.jsp裡需要查詢,列表,然後看明細資訊,然後增加資訊,我會第一步在介面裡定義完(這個過程會有整體設計的意識),毫不關心底層實現(資料庫、事務),我的目標就是"我想要這個功能,我想要那個功能",至於那個功能怎麼實現在第一階段我認為那不是我的事情(儘管這個事情最終還是由我來做) .大家看這個過程和前面的過程有什麼本質的不同呢? 就是分層的概念更加明顯,你的工作更有層次,每次都有先設計再實現的步驟,而前面那個過程很容易就讓你不知不覺地陷入純實現的陷阱中。

http://www.blogjava.net/kangdy/archive/2010/11/05/337317.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.