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