java代碼的設(shè)計(jì)原則 java設(shè)計(jì)六大原則

JAVA設(shè)計(jì)模式的原則

近年來(lái),大家都開始注意設(shè)計(jì)模式。那么,到底我們?yōu)槭裁匆迷O(shè)計(jì)模式呢?這么多設(shè)計(jì)模式為什么要這么設(shè)計(jì)呢?說(shuō)實(shí)話,以前我還真沒(méi)搞清楚。就是看大家一口一個(gè)"Design pattern",心就有點(diǎn)發(fā)虛。于是就買了本"四人幫"的設(shè)計(jì)模式,結(jié)果看得似懂非懂:看得時(shí)候好像是懂了,過(guò)一會(huì)就忘了??赡苁潜救吮容^"愚鈍"吧:))最近,有了點(diǎn)感悟。"獨(dú)樂(lè)不如眾樂(lè)",與大家分享一下,還望指教!

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為成安企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)成安網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

為什么要提倡"Design Pattern"呢?根本原因是為了代碼復(fù)用,增加可維護(hù)性。那么怎么才能實(shí)現(xiàn)代碼復(fù)用呢?OO界有前輩的幾個(gè)原則:"開-閉"原則(Open Closed Principal)、里氏代換原則、合成復(fù)用原則。設(shè)計(jì)模式就是實(shí)現(xiàn)了這些原則,從而達(dá)到了代碼復(fù)用、增加可維護(hù)性的目的。

一、"開-閉"原則

此原則是由"Bertrand Meyer"提出的。原文是:"Software entities should be open for extension,but closed for modification"。就是說(shuō)模塊應(yīng)對(duì)擴(kuò)展開放,而對(duì)修改關(guān)閉。模塊應(yīng)盡量在不修改原(是"原",指原來(lái)的代碼)代碼的情況下進(jìn)行擴(kuò)展。那么怎么擴(kuò)展呢?我們看工廠模式"factory pattern":假設(shè)中關(guān)村有一個(gè)賣盜版盤和毛片的小子,我們給他設(shè)計(jì)一"光盤銷售管理軟件"。我們應(yīng)該先設(shè)計(jì)一"光盤"接口。如圖:

而盜版盤和毛片是其子類。小子通過(guò)"DiscFactory"來(lái)管理這些光盤。代碼為:

public class DiscFactory{

public static 光盤 getDisc(String name){

return (光盤)Class.forName(name).getInstance();

}}

有人要買盜版盤,怎么實(shí)現(xiàn)呢?

public class 小子{

public static void main(String[] args){

光盤 d=DiscFactory.getDisc("盜版盤");

光盤.賣();

}}

如果有一天,這小子良心發(fā)現(xiàn)了,開始賣正版軟件。沒(méi)關(guān)系,我們只要再創(chuàng)建一個(gè)"光盤"的子類"正版軟件"就可以了。不需要修改原結(jié)構(gòu)和代碼。怎么樣?對(duì)擴(kuò)展開發(fā),對(duì)修改關(guān)閉。"開-閉原則"

工廠模式是對(duì)具體產(chǎn)品進(jìn)行擴(kuò)展,有的項(xiàng)目可能需要更多的擴(kuò)展性,要對(duì)這個(gè)"工廠"也進(jìn)行擴(kuò)展,那就成了"抽象工廠模式"。

二、里氏代換原則

里氏代換原則是由"Barbara Liskov"提出的。如果調(diào)用的是父類的話,那么換成子類也完全可以運(yùn)行。比如:

光盤 d=new 盜版盤();

d.賣();

現(xiàn)在要將"盜版盤"類改為"毛片"類,沒(méi)問(wèn)題,完全可以運(yùn)行。Java編譯程序會(huì)檢查程序是否符合里氏代換原則。還記得java繼承的一個(gè)原則嗎?子類overload方法的訪問(wèn)權(quán)限不能小于父類對(duì)應(yīng)方法的訪問(wèn)權(quán)限。比如"光盤"中的方法"賣"訪問(wèn)權(quán)限是"public",那么"盜版盤"和"毛片"中的"賣"方法就不能是package或private,編譯不能通過(guò)。為什么要這樣呢?你想?。喝绻?盜版盤"的"賣"方法是private。那么下面這段代碼就不能執(zhí)行了:

光盤 d=new 盜版盤();

d.賣();

可以說(shuō):里氏代換原則是繼承復(fù)用的一個(gè)基礎(chǔ)。

三、合成復(fù)用原則

就是說(shuō)要少用繼承,多用合成關(guān)系來(lái)實(shí)現(xiàn)。我曾經(jīng)這樣寫過(guò)程序:有幾個(gè)類要與數(shù)據(jù)庫(kù)打交道,就寫了一個(gè)數(shù)據(jù)庫(kù)操作的類,然后別的跟數(shù)據(jù)庫(kù)打交道的類都繼承這個(gè)。結(jié)果后來(lái),我修改了數(shù)據(jù)庫(kù)操作類的一個(gè)方法,各個(gè)類都需要改動(dòng)。"牽一發(fā)而動(dòng)全身"!面向?qū)ο笫且巡▌?dòng)限制在盡量小的范圍。

在Java中,應(yīng)盡量針對(duì)Interface編程,而非實(shí)現(xiàn)類。這樣,更換子類不會(huì)影響調(diào)用它方法的代碼。要讓各個(gè)類盡可能少的跟別人聯(lián)系,"不要與陌生人說(shuō)話"。這樣,城門失火,才不至于殃及池魚。擴(kuò)展性和維護(hù)性才能提高

理解了這些原則,再看設(shè)計(jì)模式,只是在具體問(wèn)題上怎么實(shí)現(xiàn)這些原則而已。張無(wú)忌學(xué)太極拳,忘記了所有招式,打倒了"玄冪二老",所謂"心中無(wú)招"。設(shè)計(jì)模式可謂招數(shù),如果先學(xué)通了各種模式,又忘掉了所有模式而隨心所欲,可謂OO之最高境界。呵呵,搞笑,搞笑!

這是我的一點(diǎn)心得,大家可能理解得更深刻。還望指教!

用記事本寫java代碼怎么運(yùn)行?

用記事本寫完代碼后運(yùn)行方法如下:

1、用瀏覽器打開用記事本編寫的代碼

新建“文本文檔”后,鼠標(biāo)右鍵點(diǎn)擊該文本文檔,在菜單欄的“打開方式”選擇“用記事本打開”,也可以設(shè)置默認(rèn)打開方式為“記事本”;用記事本打開文本文檔后,直接在該文檔內(nèi)根據(jù)自己的需要輸入想要編輯的網(wǎng)頁(yè)代碼。

2、記事本寫java代碼怎么運(yùn)行

首先,需要安裝jdk并配置環(huán)境變量。然后,在命令行中,用javac命令編譯用記事本編寫的代碼。下一步,在命令行中,用java命令執(zhí)行編譯后的結(jié)果。

代碼是什么

代碼是程序員用開發(fā)工具所支持的語(yǔ)言寫出來(lái)的源文件,是一組由字符、符號(hào)或信號(hào)碼元以離散形式表示信息的明確的規(guī)則體系。代碼設(shè)計(jì)的原則包括唯一確定性、標(biāo)準(zhǔn)化和通用性、可擴(kuò)充性與穩(wěn)定性、便于識(shí)別與記憶、力求短小與格式統(tǒng)一以及容易修改等。

計(jì)算機(jī)源代碼最終目的是將人類可讀文本翻譯成為計(jì)算機(jī)可執(zhí)行的二進(jìn)制指令,這種過(guò)程叫編譯,它由通過(guò)編譯器完成。源代碼就是用匯編語(yǔ)言和高級(jí)語(yǔ)言寫出來(lái)的地代碼。目標(biāo)代碼是指源代碼經(jīng)過(guò)編譯程序產(chǎn)生的能被 cpu直接識(shí)別二進(jìn)制代碼。

可執(zhí)行代碼就是將目標(biāo)代碼連接后形成的可執(zhí)行文件,當(dāng)然也是二進(jìn)制的。

北大青鳥java培訓(xùn):頁(yè)面設(shè)計(jì)的設(shè)計(jì)原則有哪些?

在公司進(jìn)行APP制作的過(guò)程中,由于需要面對(duì)的用戶多種多樣,需要向用戶展示的頁(yè)面也應(yīng)該是不同風(fēng)格的,這樣才能滿足不同人的需求,并且這也是大數(shù)據(jù)分析后進(jìn)行自動(dòng)排列組合所推出的頁(yè)面,那么在進(jìn)行APP制作過(guò)程中,如何如何掌握這種技巧呢?下面福建java課程為大家介紹頁(yè)面設(shè)計(jì)的設(shè)計(jì)原理。

1、通過(guò)運(yùn)營(yíng)方KPI、內(nèi)容和優(yōu)先級(jí)決定排版如果您希望能夠有很多用戶點(diǎn)擊頁(yè)面,那么內(nèi)容必須滿足用戶的需求。

如今,APP經(jīng)常使用各種維度,例如優(yōu)惠營(yíng)銷活動(dòng),排名和朋友關(guān)系鏈來(lái)協(xié)助決策,以實(shí)現(xiàn)更高的轉(zhuǎn)換率。

但是在使用過(guò)程中APP的主頁(yè)才是每個(gè)運(yùn)營(yíng)商競(jìng)爭(zhēng)資源的戰(zhàn)場(chǎng)。

電子商務(wù)業(yè)務(wù)每天都需要不同的曝光和商品類別,因此我們經(jīng)常會(huì)看到一排兩列,三列,有時(shí)甚至四列設(shè)置不同的分類。

2、采用不同的排布方法,讓頁(yè)面更加豐富在進(jìn)行頁(yè)面布局的過(guò)程中,可以愛(ài)同一個(gè)頁(yè)面中采用不同的布局方法,這樣能夠讓用戶在豐富的內(nèi)容中進(jìn)行了解,并且還能在頁(yè)面停留很長(zhǎng)的時(shí)間。

福建電腦培訓(xùn)發(fā)現(xiàn)現(xiàn)在很多購(gòu)物網(wǎng)站都是采用這種方法,在頁(yè)面主頁(yè)中布局營(yíng)銷活動(dòng)入口和各種品牌專題版塊。

3、讓用戶選擇到自己喜歡的,提高轉(zhuǎn)化在非常多的內(nèi)容中,用戶需要在多個(gè)分類中找到自己喜歡的種類,所以在進(jìn)行設(shè)計(jì)的過(guò)程中,應(yīng)該避免單單顯示簡(jiǎn)單的標(biāo)題和圖片,這樣用戶無(wú)法在瀏覽的過(guò)程中選擇自己喜歡的。

如果想要得到很好的轉(zhuǎn)化率,福建北大青鳥建議最好在設(shè)計(jì)內(nèi)容的時(shí)候添加一些內(nèi)容作為輔助信息,這樣能夠得到更好的效果。

4、對(duì)圖片內(nèi)容進(jìn)行區(qū)分在進(jìn)行圖片內(nèi)容設(shè)置的過(guò)程中,如果圖片能夠區(qū)分內(nèi)容,那么在提高用戶的瀏覽效率有很大的幫助,并且能夠?qū)?nèi)容進(jìn)行強(qiáng)化。

在圖片質(zhì)量不高的情況下,可以采用弱化圖片的方法,內(nèi)容為主,圖片為輔。

在學(xué)習(xí)電腦的過(guò)程中,很多知識(shí)都是相互貫通的,需要掌握更多的知識(shí),去參考一些好的設(shè)計(jì),成功的經(jīng)驗(yàn)是值得很多人進(jìn)行學(xué)習(xí)的。

在進(jìn)行電腦培訓(xùn)的過(guò)程中,學(xué)習(xí)更多有用的知識(shí),并且多多和其他人進(jìn)行溝通,對(duì)于掌握更多知識(shí)有很大的幫助。

java六大設(shè)計(jì)原則?

1、單一職責(zé)原則

不要存在多于一個(gè)導(dǎo)致類變更的原因,也就是說(shuō)每個(gè)類應(yīng)該實(shí)現(xiàn)單一的職責(zé),如若不然,就應(yīng)該把類拆分。

2、里氏替換原則(Liskov Substitution Principle)

里氏代換原則(Liskov Substitution Principle LSP)面向?qū)ο笤O(shè)計(jì)的基本原則之一。

里氏代換原則中說(shuō),任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。

LSP是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基類,軟件單位的功能不受到影響時(shí),基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。里氏代換原則是對(duì)“開-閉”原則的補(bǔ)充。實(shí)現(xiàn)“開-閉”原則的關(guān)鍵步驟就是抽象化。而基類與子類的繼承關(guān)系就是抽象化的具體實(shí)現(xiàn),所以里氏代換原則是對(duì)實(shí)現(xiàn)抽象化的具體步驟的規(guī)范?!?/p>

From Baidu 百科

歷史替換原則中,子類對(duì)父類的方法盡量不要重寫和重載。因?yàn)楦割惔砹硕x好的結(jié)構(gòu),通過(guò)這個(gè)規(guī)范的接口與外界交互,子類不應(yīng)該隨便破壞它。

3、依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)

這個(gè)是開閉原則的基礎(chǔ),具體內(nèi)容:面向接口編程,依賴于抽象而不依賴于具體。寫代碼時(shí)用到具體類時(shí),不與具體類交互,而與具體類的上層接口交互。

4、接口隔離原則(Interface Segregation Principle)

這個(gè)原則的意思是:每個(gè)接口中不存在子類用不到卻必須實(shí)現(xiàn)的方法,如果不然,就要將接口拆分。使用多個(gè)隔離的接口,比使用單個(gè)接口(多個(gè)接口方法集合到一個(gè)的接口)要好。

5、迪米特法則(最少知道原則)(Demeter Principle)

就是說(shuō):一個(gè)類對(duì)自己依賴的類知道的越少越好。也就是說(shuō)無(wú)論被依賴的類多么復(fù)雜,都應(yīng)該將邏輯封裝在方法的內(nèi)部,通過(guò)public方法提供給外部。這樣當(dāng)被依賴的類變化時(shí),才能最小的影響該類。

最少知道原則的另一個(gè)表達(dá)方式是:只與直接的朋友通信。類之間只要有耦合關(guān)系,就叫朋友關(guān)系。耦合分為依賴、關(guān)聯(lián)、聚合、組合等。我們稱出現(xiàn)為成員變量、方法參數(shù)、方法返回值中的類為直接朋友。局部變量、臨時(shí)變量則不是直接的朋友。我們要求陌生的類不要作為局部變量出現(xiàn)在類中。

6、合成復(fù)用原則(Composite Reuse Principle)

原則是盡量首先使用合成/聚合的方式,而不是使用繼承。

java程序設(shè)計(jì)有哪些設(shè)計(jì)原則

內(nèi)聚性

類應(yīng)該描述一個(gè)單一的實(shí)體,而所有的類操作應(yīng)該在邏輯上相互配合,支持一個(gè)一致的目的。例如:可以設(shè)計(jì)一個(gè)類用于學(xué)生,但不應(yīng)該將學(xué)生與教職工組合在一個(gè)類中,因?yàn)閷W(xué)生和教職工是不同的實(shí)體。

如果一個(gè)實(shí)體擔(dān)負(fù)太多的職責(zé),就應(yīng)該按各自的職責(zé)分成幾個(gè)類。例如:String類、StringBuffer類和 StringBuilder類用于處理字符串,但是他們的職責(zé)不同。String類處理不變的字符串,StringBuilder類創(chuàng)建可變字符串, StringBuffer()

與 StringBuffer() 類還包含更新字符串的同步方法。

一致性

遵循標(biāo)準(zhǔn)java程序設(shè)計(jì)風(fēng)格和命名習(xí)慣。為類、數(shù)據(jù)域和方法選取具有信息的名字。通常的風(fēng)格是將數(shù)據(jù)聲明置于構(gòu)造方法之前,并且將構(gòu)造方法置于方法之前。

選擇名字要保持一致。給類似的操作選擇不同的名字并非良好的實(shí)踐。例如:Length() 方法返回String、StringBuilder 和 StringBuffer 的大小。如果在這些類中給這個(gè)方法用不同的名字就不一致了。

一般來(lái)說(shuō),應(yīng)該具有一致性地提供一個(gè)公共無(wú)參的構(gòu)造函數(shù),用于構(gòu)建默認(rèn)實(shí)例。如果一個(gè)類不支持無(wú)參的構(gòu)造函數(shù),要用文檔寫出原因。如果沒(méi)有顯示定義構(gòu)造方法,即假定有一個(gè)空方法體的公共默認(rèn)無(wú)參構(gòu)造方法。

如果不想讓用戶創(chuàng)建類的對(duì)象,可以在類中聲明一個(gè)私有的構(gòu)造方法,Math類就是如此。

封裝性

一個(gè)類應(yīng)該使用private修飾符隱藏其數(shù)據(jù),以免用戶直接訪問(wèn)它。這使得類更易于維護(hù)。只在希望數(shù)據(jù)域可讀的情況下,才提供get方法;也只在希望數(shù)據(jù)域可更新的情況下,才提供set方法。例如:Rational類為numerator和denominator提供了get方法,但是沒(méi)有提供set方法,因?yàn)镽ational對(duì)象是不可改變的。

清晰性

為使設(shè)計(jì)清晰,內(nèi)聚性、一致性和封裝性都是很好的設(shè)計(jì)原則。除此之外,類應(yīng)該有一個(gè)很清晰的合約,從而易于解釋和理解。

用戶可以以各種不同的組合、順序,以及在各種環(huán)境中結(jié)合使用多個(gè)類。因此,在設(shè)計(jì)一個(gè)類時(shí),這個(gè)類不應(yīng)該限制用戶如何以及何時(shí)使用該類;以一種方式設(shè)計(jì)屬性,以允許用戶按值的任何順序和任何組合來(lái)設(shè)置;設(shè)計(jì)方法應(yīng)該使得實(shí)現(xiàn)的功能與他們出現(xiàn)的順序無(wú)關(guān)。例如:Loan類包含屬性loanAmount、numberOfYears和annualIntereRate,這些屬性的值,可以按任何順序來(lái)設(shè)置。

方法應(yīng)在不生產(chǎn)混淆的情況下進(jìn)行直觀定義。例如:String類中的substring(int beginIndex, int endIndex)方法就有一點(diǎn)混亂。這個(gè)方法返回從beginIndex到endIndex-1而不是endIndex的子串。該方法應(yīng)該返回從beginIndex到endIndex的子字符串,從而更加直觀。

不應(yīng)該聲明一個(gè)來(lái)自其他數(shù)據(jù)域的數(shù)據(jù)域。例如,下面的Person類有兩個(gè)數(shù)據(jù)域:birthDate和age。由于age可以從birthDate導(dǎo)出,所以age不應(yīng)該聲明為數(shù)據(jù)域。

JAVA面向?qū)ο笤O(shè)計(jì)有哪些原則

甚至還有經(jīng)驗(yàn)豐富的Java程序員沒(méi)有聽說(shuō)過(guò)OOPS和SOLID設(shè)計(jì)原則,他們根本不知道設(shè)計(jì)原則的好處,也不知道如何依照這些原則來(lái)進(jìn)行編程。 眾所周知,Java編程最基本的原則就是要追求高內(nèi)聚和低耦合的解決方案和代碼模塊設(shè)計(jì)。查看Apache和Sun的開放源代碼能幫助你發(fā)現(xiàn)其他Java設(shè)計(jì)原則在這些代碼中的實(shí)際運(yùn)用。Java DevelopmentKit則遵循以下模式:BorderFactory類中的工廠模式、Runtime類中的單件模式。 原則1:DRY(Don'trepeatyourself) 即不要寫重復(fù)的代碼,而是用"abstraction"類來(lái)抽象公有的東西。如果你需要多次用到一個(gè)硬編碼值,那么可以設(shè)為公共常量;如果你要在兩個(gè)以上的地方使用一個(gè)代碼塊,那么可以將它設(shè)為一個(gè)獨(dú)立的方法。SOLID設(shè)計(jì)原則的優(yōu)點(diǎn)是易于維護(hù),但要注意,不要濫用,duplicate不是針對(duì)代碼,而是針對(duì)功能。這意味著,即使用公共代碼來(lái)驗(yàn)證OrderID和SSN,二者也不會(huì)是相同的。使用公共代碼來(lái)實(shí)現(xiàn)兩個(gè)不同的功能,其實(shí)就是近似地把這兩個(gè)功能永遠(yuǎn)捆綁到了一起,如果OrderID改變了其格式,SSN驗(yàn)證代碼也會(huì)中斷。因此要慎用這種組合,不要隨意捆綁類似但不相關(guān)的功能。 原則2:封裝變化 在軟件領(lǐng)域中唯一不變的就是"Change",因此封裝你認(rèn)為或猜測(cè)未來(lái)將發(fā)生變化的代碼。OOPS設(shè)計(jì)模式的優(yōu)點(diǎn)在于易于測(cè)試和維護(hù)封裝的代碼。如果你使用Java編碼,可以默認(rèn)私有化變量和方法,并逐步增加訪問(wèn)權(quán)限,比如從private到protected和notpublic.有幾種Java設(shè)計(jì)模式也使用封裝,比如Factory設(shè)計(jì)模式是封裝"對(duì)象創(chuàng)建",其靈活性使得之后引進(jìn)新代碼不會(huì)對(duì)現(xiàn)有的代碼造成影響。 原則3:開閉原則 即對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。這是另一種非常棒的設(shè)計(jì)原則,可以防止其他人更改已經(jīng)測(cè)試好的代碼。理論上,可以在不修改原有的模塊的基礎(chǔ)上,擴(kuò)展功能。這也是開閉原則的宗旨。 原則4:單一職責(zé)原則 類被修改的幾率很大,因此應(yīng)該專注于單一的功能。如果你把多個(gè)功能放在同一個(gè)類中,功能之間就形成了關(guān)聯(lián),改變其中一個(gè)功能,有可能中止另一個(gè)功能,這時(shí)就需要新一輪的測(cè)試來(lái)避免可能出現(xiàn)的問(wèn)題。 原則5:依賴注入或倒置原則 這個(gè)設(shè)計(jì)原則的亮點(diǎn)在于任何被DI框架注入的類很容易用mock對(duì)象進(jìn)行測(cè)試和維護(hù),因?yàn)閷?duì)象創(chuàng)建代碼集中在框架中,客戶端代碼也不混亂。有很多方式可以實(shí)現(xiàn)依賴倒置,比如像AspectJ等的AOP(AspectOrientedprogramming)框架使用的字節(jié)碼技術(shù),或Spring框架使用的代理等。 原則6:優(yōu)先利用組合而非繼承 如果可能的話,優(yōu)先利用組合而不是繼承。一些人可能會(huì)質(zhì)疑,但我發(fā)現(xiàn),組合比繼承靈活得多。組合允許在運(yùn)行期間通過(guò)設(shè)置類的屬性來(lái)改變類的行為,也可以通過(guò)使用接口來(lái)組合一個(gè)類,它提供了更高的靈活性,并可以隨時(shí)實(shí)現(xiàn)。《EffectiveJava》也推薦此原則。 原則7:里氏代換原則(LSP) 根據(jù)該原則,子類必須能夠替換掉它們的基類,也就是說(shuō)使用基類的方法或函數(shù)能夠順利地引用子類對(duì)象。LSP原則與單一職責(zé)原則和接口分離原則密切相關(guān),如果一個(gè)類比子類具備更多功能,很有可能某些功能會(huì)失效,這就違反了LSP原則。為了遵循該設(shè)計(jì)原則,派生類或子類必須增強(qiáng)功能。 原則8:接口分離原則 采用多個(gè)與特定客戶類有關(guān)的接口比采用一個(gè)通用的涵蓋多個(gè)業(yè)務(wù)方法的接口要好。設(shè)計(jì)接口很棘手,因?yàn)橐坏┽尫沤涌冢憔蜔o(wú)法在不中斷執(zhí)行的情況下改變它。在Java中,該原則的另一個(gè)優(yōu)勢(shì)在于,在任何類使用接口之前,接口不利于實(shí)現(xiàn)所有的方法,所以單一的功能意味著更少的實(shí)現(xiàn)方法。 原則9:針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程 該原則可以使代碼更加靈活,以便可以在任何接口實(shí)現(xiàn)中使用。因此,在Java中最好使用變量接口類型、方法返回類型、方法參數(shù)類型等?!禘ffectiveJava》和《headfirstdesignpattern》書中也有提到。 原則10:委托原則 該原則最典型的例子是Java中的equals()和hashCode()方法。為了平等地比較兩個(gè)對(duì)象,我們用類本身而不是客戶端類來(lái)做比較。這個(gè)設(shè)計(jì)原則的好處是沒(méi)有重復(fù)的代碼,而且很容易對(duì)其進(jìn)行修改。 總之,希望這些面向?qū)ο蟮脑O(shè)計(jì)原則能幫助你寫出更靈活更好的代碼。理論是第一步,更重要的是需要開發(fā)者在實(shí)踐中去運(yùn)用和體會(huì)。

文章標(biāo)題:java代碼的設(shè)計(jì)原則 java設(shè)計(jì)六大原則
本文鏈接:http://www.muchs.cn/article28/doochcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站維護(hù)軟件開發(fā)、自適應(yīng)網(wǎng)站動(dòng)態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)