不悔路

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 1 Stories :: 30 Comments :: 0 Trackbacks

          學編程已經三四年了,但是一直都沒有寫過相關的文章。今天,終于憋出一篇來。一來作為總結,二來可以給師弟師妹作為參考。
          我讀大一的時候,老師教會了我if,while,for,等關鍵詞之后,我就開始自學了。大一的時候教的是C語言,從此之后,我迷上了C語言。因為C能實現我的想法。接下來我自學了java,jsp。當然,自學走了很多的彎路,直到現在我很后悔。~~~~(>_<)~~~~ 。交了學費不在老師那里學點東西的人的確很SB。
          我現在主要說說我學java的經驗。學東西,要知道學來做什么嗎?java干什么用呢?當然不是生孩子用的,也不是下酒菜。java有兩個方向,一個是做網站,另外一個是做手機軟件。你選擇那個方向呢?
          我選擇是做網站,雖然我一度鄙視做網站的(但我現在連鄙視的行業也進不去)。但選擇了java,再選別的就沒什么必要,我是這樣想的,肉吃了一半就丟掉嗎?多可惜。
          java是完全面向對象的語言,面向對象主要講的是封裝,繼承,多態。但是老師對于這些至關重要的知識只用了一節課,我不想說,老師很SB,或者是她不知道如何使用這些特性。我現在告訴讀者,這些特性會讓你很爽。
          我記得,我學java的時候,我用swing組件做了一個同學錄的軟件。當時的心情是自豪的,現在看里是傻B呼呼。首先,swing已經是一門過時的技術,過時的東西是被歷史淘汰了,我卻當做寶貝。是多么的無知。
          我現在分析我那個軟件。我當然寫的同學錄只有一個類。一個主類,類里再套類,看得我頭昏腦脹,改一點就得改好多,然后調試的時候就出現好多錯誤。遇到這樣的問題誰都頭痛。為什么出現這樣的情況。因為只有一個類呀,所有的東西都放在一個類里,不亂才怪。就像一個籮筐里什么都放,當然亂了。這個時候,我們應該用到封裝來改變代碼的質量。
          怎么做呢?
          首先,界面和業務邏輯分開。對于界面,很多人都知道,但是業務邏輯有可能不明白的,我比喻一下。比如,同學錄。你想看我的同學錄,你就得知道我的登陸密碼,你輸入密碼的時候,代碼會校驗密碼,校驗密碼就是一個業務邏輯。界面和業務邏輯分開有什么好處?起碼,代碼分工分明。這些類負責界面,那些類負責業務邏輯。分工分明是有好處的。避免大家手忙腳亂做錯事,還有誰出錯了就找誰算賬就行。
          這樣的話你的代碼就得這樣寫了
          class 界面
          {
          }
          class 業務邏輯
          {
          }
          這樣總比
          class 界面+業務邏輯
          {
          }
          好管理吧。
          這樣的話,界面的一些按鈕的位置改變了,對業務邏輯影響不大。這就是書上說的耦合度。

          接著說業務邏輯。因為業務邏輯比較重要。
          業務邏輯這么寫呢?我以前是這樣寫的,比如說,我想我的同學了,我想查一下她的電話然后call她。我很懶,不想翻電話部,我就用同學錄軟件查詢我的同學錄,那么軟件就得有查詢的功能。代碼是這樣的
          class select同學name
          {
          }
          刪除
          class delete同學
          {
          }
          但是,想用我的同學錄你得知道密碼,你就輸入密碼。那么我的代碼是
          class select密碼
          {
          }
          這樣寫下去,我感覺很無頭緒。這個時候就很適合用接口。什么是接口,我當時學java的時候,我也在想什么是接口,不就是一個interface嗎?
          基本語法是這樣的
          interface 接口名
          {
           抽象方法1;
           抽象方法2;
          }

          當時我琢磨了很長時間,想不到interface怎么個好用?
          現在我明白了。
          你查詢密碼,查詢同學的電話,或者是更新同學的電話。你就得查詢數據庫吧。對于數據的操作不就是select,delete,update嗎?
          那么這樣的話,我們可以這樣寫
          public interface DataBase
          {
           // 增加操作
           public void insert(name) throws Exception ;
           // 修改操作
           public void update(name) throws Exception ;
           // 刪除操作
           public void delete(String id) throws Exception ;
           // 按ID查詢操作
           public Person queryById(String id) throws Exception ;
           // 查詢全部
           public List queryAll() throws Exception ;
           // 模糊查詢
           public List queryByLike(String guanjianci) throws Exception ;
          }
          然后你就可以在各個功能類里implements DataBase了。什么是接口,就是規定你按照上面的格式去做,有規定了,就好辦事,對嗎?這個最好看看簡單工廠設計模式.

           


          接下來說JSP吧
          學完java就該學JSP了。我們發的是電子工業出版社出版的《JSP動態網頁編程技術》第七章說的是JSP操作數據庫。用的是JDBC-ODBC橋,如果堂哥沒有這樣提醒我的話,我現在可能還在配置數據源-----java的優勢是跨平臺,你這樣連接數據庫的話,就和操作系統綁定在一起了。于是我在網上查了,用JDBC驅動包。因為這樣的話速度快,如果是配置connection poll(連接池)性能就更加高了,好的東西我們為什么不用呢?第九章是servlet編程技術,但是老師沒有講,我忘記什么理由了。好像是用得不多。但是在接下來的自學過程中。我知道servlet用得很多,而且很重要。包括MVC設計模式和struts框架。不懂servelet就不懂java。servlet有很多精彩的地方。我這不是教程,所以就不詳細說servlet的語法。但是servlet的路徑問題得好好研究。對于servlet就學會配置web.xml和獲取,跳轉就可以了。
          但是你要是有很多servlet的話。你就得配置很多,這樣的話,web.xml的文件就顯得很臃腫,有沒有更高的解決方法?有的。<url-pattern>*.do</url-pattern>,你可以試一下,不管你什么請求,你請求的路徑是什么,只要.do結尾的都能找到那個servlet。這就是從多個名稱映射同一個servlet。
          servlet可以用request.getRequestURL()獲取路徑,然后用字符串截取函數substring()截取請求后面的路徑。然后根據請求的路徑跳轉到哪個類。當然,跳轉到哪個類,最好的解決方法是在.xml中配置。避免了大量的if語句。而且很靈活。所以,在struts1.x中有個默認的配置文件struts-config.xml配置映射。在struts中,actionServlet就做上面的截取路徑的動作。然后由struts-config.xml提供的映射分發到Action。對于struts我不易多說,因為我現在在學習。我感覺它是個好東西。很經典,很多設計模式都在里面找到。
          我愿意和你們一起學習struts。

          posted on 2009-01-07 17:53 小弟 閱讀(261) 評論(2)  編輯  收藏

          評論

          # re: 涉及JSP的經驗 2009-01-08 00:44 liudecai_zan@126.com
          互相學習,互相質疑。只談技術,不談人品。
          1.java的發展方向主要是javaEE,javaMe,javaSe三個方向,網站開發是javaEE開發的一部分,手機軟件是javaMe的一部分
          2.javaSe是基礎,然后向javaEE和javaMe兩個方向發展。
          3.Servlet和JSP是javaEE開發的核心技術  回復  更多評論
            

          # re: 涉及JSP的經驗 2009-01-08 13:31 Woody
          接口是為了實現多態的,這點很重要。  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 沭阳县| 保康县| 汉寿县| 项城市| 琼结县| 明溪县| 浦东新区| 富源县| 揭东县| 永川市| 瑞金市| 杨浦区| 藁城市| 和硕县| 金乡县| 修水县| 仁布县| 杨浦区| 湖南省| 牡丹江市| 乌鲁木齐市| 都匀市| 安泽县| 芜湖市| 宕昌县| 廊坊市| 宝坻区| 读书| 峡江县| 桑植县| 旺苍县| 毕节市| 万山特区| 望谟县| 长顺县| 栖霞市| 光泽县| 呼和浩特市| 泰顺县| 历史| 泸州市|