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