Java編程原則

               《Java與模式》這本書(shū)對(duì)于我的影響很大,我總結(jié)了書(shū)中的幾條編程原則,總結(jié)得不全面,請(qǐng)大家補(bǔ)充。
          1“開(kāi)-閉”原則:一個(gè)軟件實(shí)體應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉,這個(gè)原則說(shuō)的是,在設(shè)計(jì)一個(gè)模塊的時(shí)候,應(yīng)當(dāng)使這個(gè)模塊可以在不被修改的前提下被擴(kuò)展,換言之,應(yīng)當(dāng)可以在不被修改源代碼的情況下改變這個(gè)模塊的行為。
          2對(duì)可變性的封裝原則:找到一個(gè)系統(tǒng)的可變因素,將它封裝起來(lái)。
          3將一個(gè)進(jìn)行多次條件轉(zhuǎn)移的商業(yè)邏輯封裝到不同的具體子類中,從而使用多態(tài)性來(lái)代替條件轉(zhuǎn)移語(yǔ)句。
          4由于抽象類不可以實(shí)例化,因此一個(gè)設(shè)計(jì)師設(shè)計(jì)一個(gè)新的抽象類,一定是用來(lái)繼承的,而這一聲明倒過(guò)來(lái)也是對(duì)的:具體子類不是用來(lái)繼承的。
          5在一個(gè)從抽象類到多個(gè)具體類的繼承關(guān)系中,共用的代碼應(yīng)當(dāng)盡量移動(dòng)到抽象類里。
          6與代碼的移動(dòng)方向相反,數(shù)據(jù)的移動(dòng)方向是從抽象類到具體類。
          7一般而言,如果兩個(gè)具體類A和B有繼承關(guān)系,那么一個(gè)最簡(jiǎn)單的修改方法應(yīng)當(dāng)是建立一個(gè)抽象類C,然后讓類A和類B成為抽象類C的子類。
          8要針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程,要保證做到這一點(diǎn),一個(gè)具體Java類應(yīng)當(dāng)只實(shí)現(xiàn)Java接口和抽象Java類中而不應(yīng)當(dāng)給出多余的方法。
          9只要一個(gè)被引用的對(duì)象存在抽象類型,就應(yīng)當(dāng)在任何引用此對(duì)象的地方使用抽象類型,包括參量的類型聲明、方法返回類型的聲明、屬性變量的類型聲明等。
          10優(yōu)先考慮將一個(gè)類設(shè)置為不變類,即使一個(gè)類必須是可變類,在給它的屬性設(shè)置賦值方法的時(shí)候,也要保持吝嗇的態(tài)度。
          11盡量降低成員的訪問(wèn)權(quán)限。
          12如果一個(gè)類可以設(shè)置成package-private的,那么就不應(yīng)當(dāng)將它設(shè)置為public。
          13在需要一個(gè)變量的時(shí)候才聲明它,可以有效地限制局部變量的有效范圍。
          14一般而言,for循環(huán)比while循環(huán)稍好一點(diǎn)。
          15要針對(duì)抽象編程,不要針對(duì)具體編程。



          posted on 2007-05-17 17:37 我為J狂 閱讀(1824) 評(píng)論(12)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

          評(píng)論

          # re: Java編程原則 2007-05-17 21:20 劉甘泉

          srp,ocp,lsp,isp,dip都是ood的原則  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-18 14:22 dreamstone

          Java與模式是本好書(shū)啊,講解方式易于理解,而且夠詳細(xì).
          但問(wèn)題也在這,這么大一本看著就有點(diǎn)怕,我是歷時(shí)1年,差不多分三次才看完這本書(shū).每次看一部分后就有點(diǎn)不想看了.等一下繼續(xù),不過(guò)發(fā)現(xiàn)這種方式來(lái)看反而比集中一下看完收獲更多些.  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-18 15:06 zjftlx@21cn.com

          只可惜在J2me中應(yīng)用的時(shí)候,很多都受限制  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-18 15:27 我為J狂

          @dreamstone
          同意您的看法,我也是斷斷續(xù)續(xù)的閱讀了這本書(shū),每次讀完都很受啟發(fā)。  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-18 15:29 我為J狂

          @zjftlx@21cn.com
          不太了解J2ME,不過(guò)我想編程模式應(yīng)該差不多吧!  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-18 16:10 dreamstone

          @zjftlx@21cn.com
          是啊,java中的模式是為了擴(kuò)展性,是為了好維護(hù),必然造成一定的資源占用,而j2me的程序最敏感的就是資源了。是會(huì)有很多限制。  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-05-19 10:28 L2

          不錯(cuò)!有時(shí)間也去看看這本書(shū)!  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-06-09 21:58 itkui

          現(xiàn)在就去當(dāng)當(dāng)網(wǎng)上買本!  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-06-10 08:36 我為J狂

          @itkui
          http://www.aygfsteel.com/lzqdiy/archive/2007/05/02/115000.html下載電子版,可以省不少銀子。  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-06-10 13:47 itkui

          哈哈,買了呀,不喜歡電子書(shū)。
          平時(shí)省點(diǎn)花就是了。  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-06-10 15:45 我為J狂

          @itkui
          電子書(shū)省錢,但是費(fèi)眼睛。  回復(fù)  更多評(píng)論   

          # re: Java編程原則 2007-06-13 23:18 itkui

          書(shū)已經(jīng)到了呀,很不錯(cuò)的。。
          開(kāi)篇說(shuō)的就是道家思想,我本人就愛(ài)看道德經(jīng)!
          比較不錯(cuò)!!!  回復(fù)  更多評(píng)論   

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 岱山县| 汝阳县| 武山县| 天长市| 丹东市| 通山县| 明水县| 连城县| 灌阳县| 弥渡县| 哈巴河县| 普兰店市| 洪泽县| 翁牛特旗| 阿城市| 肃北| 灵川县| 芜湖县| 科技| 昌宁县| 上栗县| 博乐市| 民乐县| 武穴市| 澜沧| 金阳县| 乌拉特后旗| 安远县| 宜宾市| 龙江县| 郓城县| 汉沽区| 金溪县| 南华县| 彩票| 平乡县| 朝阳市| 新干县| 长丰县| 都昌县| 明光市|