面向?qū)ο笃叽笤O(shè)計(jì)原則 什么是開閉原則?
什么是開閉原則?開閉原則(OCP)是面向?qū)ο笤O(shè)計(jì)中“可重用設(shè)計(jì)”的基石。它是面向?qū)ο笤O(shè)計(jì)中最重要的原則之一。許多其他的設(shè)計(jì)原則是實(shí)現(xiàn)OCP的一種手段。它開放用于擴(kuò)展,關(guān)閉用于修改,這意味著可以擴(kuò)展模塊
什么是開閉原則?
開閉原則(OCP)是面向?qū)ο笤O(shè)計(jì)中“可重用設(shè)計(jì)”的基石。它是面向?qū)ο笤O(shè)計(jì)中最重要的原則之一。許多其他的設(shè)計(jì)原則是實(shí)現(xiàn)OCP的一種手段。它開放用于擴(kuò)展,關(guān)閉用于修改,這意味著可以擴(kuò)展模塊的行為。當(dāng)應(yīng)用程序的需求發(fā)生變化時(shí),我們可以擴(kuò)展模塊以滿足這些變化的新行為。換句話說,我們可以改變模塊的功能。擴(kuò)展模塊行為時(shí),不必更改模塊的源代碼或二進(jìn)制代碼。模塊的二進(jìn)制可執(zhí)行版本,無論是可鏈接庫(kù)、DLL還是。EXE文件,不需要更改。
什么樣的代碼叫好代碼?
好的代碼,滿足兩個(gè)條件:能達(dá)到預(yù)期效果,容易理解。
代碼的不同不在于功能能否實(shí)現(xiàn),而主要在于實(shí)現(xiàn)的質(zhì)量。
有些代碼雖然實(shí)現(xiàn)了效果,但另一個(gè)程序員看不懂,無法維護(hù),也是壞代碼。
現(xiàn)在在軟件行業(yè),程序員加班是很常見的。疲勞將不可避免地影響代碼的質(zhì)量。
他們大多急于達(dá)到職能要求,完成領(lǐng)導(dǎo)安排的任務(wù),只以完成為目標(biāo)。
這種不考慮長(zhǎng)遠(yuǎn)的工作方式在短時(shí)間內(nèi)實(shí)現(xiàn)了目標(biāo),但從長(zhǎng)遠(yuǎn)來看是個(gè)大問題。
一旦程序員離開,新來的人需要很長(zhǎng)時(shí)間才能接手。項(xiàng)目的可擴(kuò)展性和穩(wěn)定性沒有保證。
尤其是一些外行領(lǐng)導(dǎo)只知道如何為上級(jí)做貢獻(xiàn),不能科學(xué)安排時(shí)間。
功能需求一經(jīng)更改就立即更改,新功能即將出現(xiàn)。因此,工程設(shè)計(jì)不斷調(diào)整,整體建筑穩(wěn)定性受損。
整個(gè)行業(yè)還沒有意識(shí)到代碼質(zhì)量的重要性,也沒有對(duì)代碼的敬畏。它只著眼于現(xiàn)在而忽視了長(zhǎng)遠(yuǎn)。
只有行業(yè)人員達(dá)到飽和,淘汰不合格的程序員和產(chǎn)品經(jīng)理,好的代碼才能形成趨勢(shì)。
java為什么要設(shè)計(jì)interface,是為了盡可能替代類的繼承嗎?
您好,您的問題包含兩個(gè)小問題:1。為什么Java設(shè)計(jì)界面?② 是為了盡可能地替換類繼承嗎?
接口是一系列方法的聲明,例如方法名稱、參數(shù)、返回值和其他信息。接口中的方法未實(shí)現(xiàn)。這些方法可以在不同的地方由不同的類實(shí)現(xiàn)。
繼承是指子類繼承父類的特征和行為,使子類具有父類的實(shí)例字段和方法。
接口的主要功能是減少代碼耦合,屏蔽實(shí)現(xiàn)層。例如,當(dāng)前端和后端接口相互作用時(shí),我們可以約定接口層不會(huì)相互影響。至于后端接口的實(shí)現(xiàn),我們可以慢慢來。
繼承的主要功能是在現(xiàn)有功能的基礎(chǔ)上繼續(xù)擴(kuò)展。首先,它清楚地反映了相關(guān)類之間的層級(jí)關(guān)系。其次,它減少了代碼的冗余,大大提高了程序的可重用性。
①定義的修飾符不同(接口),(擴(kuò)展)
2。接口中只能定義全局常量和抽象方法,繼承中可以定義屬性方法、變量、常量等。
③當(dāng)接口由類實(shí)現(xiàn)時(shí),接口中的所有方法必須在類中實(shí)現(xiàn),繼承可以調(diào)用指定的方法。
④繼承只能繼承一個(gè)類,但實(shí)現(xiàn)可以實(shí)現(xiàn)多個(gè)接口,用逗號(hào)分隔。