Java我的三個月——OOP的樂趣 (轉)
我發現從學習然後轉到語言的學習對於我來說是一個很好的過程。有位大師說“面向技術降低了的門檻”,這句話我想應該可以放到技術中,更改為“JSP技術降低了Java程式入門的門檻”。利用JSP技術,可以用比普通Java程式碼更少的語句實現“hello world”。
JSP技術封裝了客戶端Java程式碼和網路應用的連線,加上技術的後臺支援,使得開發人員可以很容易的將程式控制邏輯封裝到網頁中,生成動態的網頁。以JSP/Servlet技術構成了的平臺前端,這使得開發人員可以更專注於後端業務邏輯的獨立和實現。這也是我至今為止看到的MVC的最佳表現。MVC是迄今為止應用最為廣泛的體系結構,模型—檢視—控制器的結構劃分使得程式結構非常清晰,程式的表現形式更加多樣,程式功能的耦合更加寬鬆,業務邏輯更加獨立,這都保證了的可維護性和可擴充套件性。
由於Java是一個純OO的語言,這使得一些設計在Java中可以非常容易的實現,你可以很輕鬆的運用設計模式來提高程式碼的質量,甚至在不知不覺之中你已經自己“創造”了一個設計模式,即使你從未接觸過這種設計模式。在我們小組開發JSP的時候,不同開發人員都需要利用JC與打交道,起初每個開發人員都試圖使用自己的連線方法,大部分人採用最簡單的Manager.getConnection()方法獲取資料庫連線,但是很快我發現很多的網頁和Javabean中都有這樣的程式碼,這是非常恐怖的事情:如果有很多網頁都需要單獨請求資料庫連線,這將造成極大的資源佔用和浪費,而且一旦資料庫發生改變,將異常複雜。於是我立即寫了一個包含getConnection()靜態方法的資料庫連線Javabean,交給每個開發人員。這樣在開發過程中可以很容易的得到資料庫連線,節省了開發時間。而且統一了資料連線介面。由於使用靜態方法,資料庫連線更加。最重要的是,由於對資料連線多了一層封裝,這使得改變資料庫連線方式將非常容易,比如可以很容易的使用資料庫連線池來提高系統的。後來我才知道這其實屬於Façade模式,儘管我以前並不知道Façade模式。
在開發應用伺服器的時候,Servlet的功能可能會無限擴大。我參考了《JSP設計》書中的Action方法,實現了自己的Servlet-Action結構。我對這個Action作了一些修改,增加了第二個請求引數“dowhat”,這使得一個Action可以更多的任務,減少了Action的開發工作量。在實際開發過程中,開發人員都很好的接受了這樣的伺服器程式結構。
Java的技術也非常有意思。設計Java的人再一次貫徹了MVC體系結構,這使得Java的視窗介面開發也具有了JSP開發一樣的靈活性。(這裡由於本人先接觸了JSP,後才接觸Swing,所以由此感覺。事實上Swing技術的出現遠早於JSP技術)
利用Java的介面和實現類,可以更好的鬆散系統的功能。Java介面和實現的分離完全不同於C/C++語言的介面和實現(.h和.cpp檔案)。Java介面和實現分離非常好的體現了“plug-in”概念,而C/C++的介面和實現分離並沒有帶來真正意義上的介面概念,只是很勉強的在程式碼檔案上下文章,除了可以帶來inline的執行之外,我看不到更多的優點。新的語言也拋棄了C/C++的模式。
Java的介面和實現類使得功能擴充套件更加方便。現在的J2EE系統開發已經可以很清晰的劃分為介面的開發和業務邏輯的開發兩大部份。在業務邏輯開發過程中,考慮到系統效能和升級,我們更多的要首先確定系統的功能範圍,然後根據功能範圍以最快的速度寫出功能實現,這往往不是最好的實現,更好的實現將作為系統升級來開發。這裡的“實現”應該指的是具體的物件了,而“功能”並不是一種物件。利用C++開發時,往往首先考慮使用類繼承來實現功能的可升級和可擴充套件性,利用不同的子類來實現相同的功能介面。這樣不同實現之間體現出了一種並列的物件關係,“實現”表現為“功能”這個“物件”的擴充套件——但是事實上功能和實現是兩種不同層面上的概念。利用Java介面及可以很好的從概念上分離功能和實現,更加明確不同類(包括介面)的開發要求,開發人員可以很廣泛的使用介面,而不用過多考慮具體類的變化。:namespace prefix = o ns = "urn:schemas--com::office" />
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958601/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 享受工作樂趣(轉)
- 三個水桶等分8升水的問題 -《演算法的樂趣》演算法
- Java我的感情歲月——初識 (轉)Java
- 推薦網站Project Euler:思考的樂趣&計算的樂趣網站Project
- 【演算法的樂趣】演算法
- 【2月英語-topic中快樂的我】
- 閱讀原始碼的樂趣原始碼
- 重拾 CSS 的樂趣(下)CSS
- 重拾 CSS 的樂趣(上)CSS
- 維護程式的那些樂趣
- 享受工具帶來的樂趣
- 遊戲,一個有樂趣的、解決問題的過程遊戲
- 傳奇程式設計師Larry Wall:Perl的樂趣 (轉)程式設計師
- 三個月不工作,我才轉行做了程式設計師程式設計師
- 我對OOP的淺顯見解OOP
- 終端中的樂趣:6個有趣的Linux命令列工具Linux命令列
- 擁有一個永遠無法實現的想法的樂趣
- 實體遊戲衰敗,我們再也找不到“淘換”遊戲的樂趣遊戲
- 我轉行前端花了11個月前端
- 10月TIOBE榜Java跌出前三!要不我轉回C#吧JavaC#
- OOP實驗三OOP
- 我的 Java 轉 Go 之路JavaGo
- 我所理解的OOP——UML六種關係OOP
- 愛上數學的理由——評《思考的樂趣》
- 樂趣在於思考
- 『技術分享』—— 我的第一個微信小程式-趣聞微信小程式
- 提高Java程式碼可重用性的三個措施 (轉)Java
- 多出來的50% Imagination——思考的樂趣
- 《好學的C++》“小知識”選摘(三):OOP值得我們去學習嗎C++OOP
- 引爆你的網頁樂趣!前端十個令人捧腹的JavaScript整蠱程式碼。網頁前端JavaScript
- 我用 TypeScript 語言的七個月TypeScript
- 《最強蝸牛》運營分析:這個奇葩放置遊戲的樂趣在哪裡?遊戲
- 三個月我遷移了100PB資料
- 手繪小插畫之思考的樂趣(1)
- 手繪小插畫之思考的樂趣(2)
- 一個老師的理解,這就是OOPOOP
- 分享我的喜怒哀樂