春天里,百花香...
Object Orient Programming
Java面向對象編程
摘要: 在基于Model2的應用中,控制層的類總會包含對業務層諸類的調用,業務層諸類不可避免的要產生各種異常,如果統一到控制層進行處理的話會導致代碼變得龐大臃腫還有不少重復,這種的例子在Web應用中的Servlet和Action諸類中并不少見。
如果我們使用模板方法模式(Template Method Pattern)將業務處理和異常處理分開,能有效簡化控制層諸類的代碼,借用這種模式,我們可以把固定的異常處理代碼放在基類中,而讓子類來實現具體的業務,如果執行業務過程中出現異常如數據庫無法連接,用戶找不到等異常后,直接將異常拋出讓基類來處理,這樣做成功的把業務處理和異常處理分開到了子類和基類兩種類中,涉及具體業務處理的子類代碼得到了很大的簡化,更方便閱讀,修改和管理。
有點疑惑的是,現在還不確定這樣做會有什么消極印象,如安全性或結構方面的,大家要是覺得有問題請不吝賜教。
閱讀全文
摘要: 權限設計是很多系統重要的組成部分,主要用于控制功能和流程,本文將幾種常見的權限設計方案(權限系統的名都是自己起的)的基本設計寫出來,其中不恰當處還請大家指出,我們來討論一下.
閱讀全文
摘要: 轉化效果:
阿拉伯數字等于:0 大寫漢字等于:零整
阿拉伯數字等于:3.14159 大寫漢字等于:叁點壹肆壹伍玖
阿拉伯數字等于:101.3 大寫漢字等于:壹佰零壹點叁
阿拉伯數字等于:10203040506070809 大寫漢字等于:壹萬兆零貳佰零叁兆零肆佰零伍億零陸佰零柒萬零捌佰零玖整
阿拉伯數字等于:7897645 大寫漢字等于:柒佰捌拾玖萬柒仟陸佰肆拾伍整
阿拉伯數字等于:500000001000000 大寫漢字等于:伍佰兆零壹佰萬整
阿拉伯數字等于:2435685 大寫漢字等于:貳佰肆拾叁萬伍仟陸佰捌拾伍整
阿拉伯數字等于:5345438976 大寫漢字等于:伍拾叁億肆仟伍佰肆拾叁萬捌仟玖佰柒拾陸整
閱讀全文
摘要: 軟件的核心任務不外乎是收集和整理數據,然后以用戶需要的形式表現給他們而已,此外還有數據的存儲,數據的傳輸等外圍任務。
數據的收集,整理,表現,存儲和傳輸就是軟件的主要任務,它們也是程序員的主要工作內容,也是程序員編寫代碼的最終目的。
那么該如何編寫代碼讓軟件完成它的主要任務呢?編寫代碼的過程是否有規律可循?編寫代碼需要注意那些方面的問題?本人想就這些問題羅列自己一些粗淺的看法,并大家進行一些探討。
閱讀全文
摘要: 領域層類可以理解為程序運行時數據流的功能單位,而服務層類是為領域層類提供服務的,常見的服務有增刪改查等操作,在沒有泛型之前,我們只能采用一個服務類為一個領域類提供服務的方案,如果說服務的性質類似,如都是增刪改查等,則代碼的功能重復性很高,維護起來也很麻煩.如果采用了泛型類,我們就可以把性質相似的服務類歸納成一個,很大程度上能簡化編碼.
閱讀全文
摘要: 一個解析文本中的信息并向對象賦值過程的思考,比較淺顯.
閱讀全文
摘要: private的成員變量能被子類繼承嗎?回答是父類的所有成員變量包括私有成員變量都會被子類繼承,private只是把可見性限制在改類內部的方法中而已,子類仍然可以通過父類的成員函數來訪問不可見的從父類繼承下來的私有成員.
這個機制對于復雜的類體系中保護父類不被濫用很有好處.
閱讀全文
摘要: 我們有時會遇到對同一個內存區域如數組或者鏈表進行多線程讀寫的情況,一般來說有以下幾種處理方式:
1.不加任何限制,多見于讀取寫入都很快的情況,但有時也會出現問題.
2.對讀寫函數都加以同步鎖,比如使用singleton模式,這下問題是沒了,但效率也下去了,比如說兩個讀取線程不是非要排隊進入不可.
3.讀寫鎖,安全和效率都得到了解決,特別合適讀線程多于寫線程的情況.也就是下面將要展現的模式.
讀寫鎖的本意是分別對讀寫狀態進行互斥區分,有互斥時才加鎖,否則放行.互斥的情況有:
1.讀寫互斥.
2.寫寫互斥.
不互斥的情況是:讀讀,這種情況不該加以限制.
我們只要讓鎖對象知道當前讀寫狀態就可以了,再根據情況進行鎖定和解鎖,然后再分情況進行鎖定.請看代碼
閱讀全文
摘要: 這篇文章是"調度員,工人及任務的OO分析過程"的續篇.
上次的情況是由調度員主動分配任務,但有些情況下需要工人自動取得任務而不是由調度員分配,這時需要對線程進行通知,使用的主要方法就是對象的wait(),notify(),notifyAll()三個函數,它們都必須從同步方法(synchronized method)中調用.
閱讀全文
摘要: 日常編碼中,我們常需要為各種業務進行建模,為工廠中的任務調度建模就很有意思的,它的主要流程是基本是這樣:
1.調度員將工件圖紙交付給工人,這是任務的下達.
2.工人工作,完成工件,這是任務的進行過程.
3.工件完成后,工人將圖紙和工件返還給調度員,或者到了確定的時間后由調度員去取.這是任務的完成.
4.重復上述三個步驟.
在這個流程中,還存在一些特征:
1.工人可以有多項任務,但他在一個時間只能做一個活,具體做那個由任務的優先級確定.
2.任務完成后要讓調度員知道,現實中是工人來找調度員或者調度員找工人來實現的.
從上述情況分析,我們需要任務,工人,調度員三個類來完成建模,另外為了方便任務的存儲和管理,還需要一個任務串類來輔助.
閱讀全文
Full Object Orient Programming Archive
sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.