盤點(diǎn)編程常見專業(yè)術(shù)語!學(xué)了這么久編程,不會不知道吧?
這些概念術(shù)語包括:概念完整性、內(nèi)聚性、抽象數(shù)據(jù)類型、耦合、信息隱藏、最小驚訝規(guī)則等。
如果您讀過一本技術(shù)書籍(我想您應(yīng)該是一名軟件工程師),您可能會發(fā)現(xiàn)一個(gè)您不熟悉的術(shù)語或概念。也許你在大學(xué)的某個(gè)時(shí)候?qū)W習(xí)過它,但你對它的記憶已經(jīng)淡化了,或者它是一個(gè)你以前從未接觸過的新東西。通常,這取決于您正在閱讀的書籍的先進(jìn)程度,以及您需要什么樣的經(jīng)驗(yàn)才能充分利用您的閱讀。

抽象
在面向?qū)ο?/strong>?的編程中,抽象是將現(xiàn)實(shí)世界的實(shí)體簡化為其在軟件目的上下文中的基本和最需要的屬性和行為的行為。因此,在政府應(yīng)用程序的上下文中,用戶對象需要具有 (firstName, lastName,?nationalIdNumber?);?然而,在電子商務(wù)環(huán)境中,用戶對象不需要屬性“?nationalIdNumber?”。
屬性
對象屬性是根據(jù)對象狀態(tài)保存不同值的屬性(變量)。例如,假設(shè)有兩個(gè)用戶對象,一個(gè)可以具有屬性/屬性 firstName=”Mohamad”,而第二個(gè)具有 firstName=”John”。
行為
對象行為是對象可以執(zhí)行的動作。例如,用戶對象可能具有獲取用戶全名的行為。

封裝
封裝涉及將必要的屬性和行為捆綁在一個(gè)類中。它只公開其他對象需要的功能并隱藏其余的功能。在用戶對象中,保存用戶的購物車沒有任何意義。不過,可以保存他們的名字。將 getFullName() 設(shè)為公共方法而將 generatePasswordSalt() 設(shè)為私有方法也是有意義的。
信息隱藏
這涉及設(shè)計(jì)類,以便其他類不需要的屬性和方法對它們隱藏。
分解
分解是將一個(gè)大的或整個(gè)實(shí)體分解成更簡單和更小的部分,在這些部分很容易集成在一起并形成更大的實(shí)體。例如,在電子商務(wù)環(huán)境中,用戶可以有一個(gè)賬單地址和送貨地址,或者可能有多個(gè)送貨地址(家庭、辦公室、湖邊小屋等)。在這種情況下,您需要使地址成為具有自己的屬性和行為的單獨(dú)對象。
多態(tài)性
這是以相同方式與不同對象類型交互的能力。通常是因?yàn)樗鼈兌祭^承了相同的超類或應(yīng)用了相同的接口。假設(shè)您有一個(gè)名為“DataStore”的接口,它有兩個(gè)方法簽名“query() 和 save()”,現(xiàn)在您可以有多個(gè)對象來實(shí)現(xiàn)這個(gè)接口“FileSystemStorage、DBStroage 等”。因此,雖然它們是不同類型的對象,但它們都有兩個(gè)方法“query() 和 save()”。
概括
這涉及在單獨(dú)的類中重構(gòu)公共屬性和方法,以便更頻繁地重用。它將確保您的系統(tǒng)更少耦合。
耦合
這是軟件工程中的一個(gè)術(shù)語,它描述系統(tǒng)的兩個(gè)部分何時(shí)相互依賴,以至于它們中的每一個(gè)都不能在另一個(gè)上下文中單獨(dú)重用。這被認(rèn)為是不好的做法,因?yàn)檫@兩個(gè)部分是“耦合的”。還記得我們之前創(chuàng)建的地址對象嗎?您可以將它與用戶地址或商店地址等一起使用,因此它不再與用戶對象耦合。
靈活性
靈活性是指在不破壞系統(tǒng)的情況下應(yīng)用更改或向系統(tǒng)添加功能的容易程度。
維護(hù)
這是指在系統(tǒng)交付后修復(fù)、改進(jìn)或更改功能。

抽象數(shù)據(jù)類型:
這是一種由其行為定義且沒有實(shí)現(xiàn)的數(shù)據(jù)類型。您可以將抽象數(shù)據(jù)類型視為軟件設(shè)計(jì)中使用的理論概念。抽象數(shù)據(jù)類型的一個(gè)例子是堆棧、隊(duì)列或列表。堆棧必須具有“Push and Pop”操作,這些操作如何實(shí)現(xiàn)由開發(fā)人員決定,而不是編程語言。隊(duì)列數(shù)據(jù)類型也是如此;它必須具有“入隊(duì)和出隊(duì)”操作?,F(xiàn)在假設(shè)您是一名開發(fā)人員,正在構(gòu)建一個(gè)列表。列表是一種抽象數(shù)據(jù)類型,其接口由編程語言提供,由開發(fā)人員完成。開發(fā)人員可以創(chuàng)建鏈接列表或數(shù)組列表或任何其他列表。
執(zhí)行
這是從設(shè)計(jì)中創(chuàng)建工作系統(tǒng)的過程。簡單來說,就是寫代碼的過程。
凝聚
Cohesion 描述了一個(gè)模塊或一個(gè)類的目的是多么簡單。高內(nèi)聚模塊意味著它的目的是明確的,并且不會比它需要的更復(fù)雜。另一方面,低內(nèi)聚意味著它非常復(fù)雜,其目的不明確。
概念完整性
當(dāng)軟件具有概念完整性時(shí),這意味著它具有如此強(qiáng)烈的統(tǒng)一主題或感覺,以至于看起來好像是一位開發(fā)人員對其進(jìn)行了編程。實(shí)際上,整個(gè)團(tuán)隊(duì)可能已經(jīng)開發(fā)了該軟件,但是因?yàn)樗麄冏裱嗤闹笇?dǎo)方針和結(jié)構(gòu),所以一切看起來都是統(tǒng)一的。
關(guān)注
這是指系統(tǒng)部分的角色或動作。您可能還會聽到術(shù)語“關(guān)注點(diǎn)分離”,它可以幫助您解耦系統(tǒng)組件。
最小驚訝法則
這一原則指出,組件的行為應(yīng)該符合人們期望的行為。例如,作為開發(fā)人員,如果我想禁用一個(gè)用戶帳戶,那么我希望這在用戶模塊中而不是在融資模塊中。

從一個(gè)過來人的角度來說,新手學(xué)編程方法真的很重要,不然就會造成高消耗,低效能的情況。如果你想更好的提升你的編程核心能力(內(nèi)功),下面的這個(gè)資料也建議去看看,對基礎(chǔ)提升挺有幫助的。
微信公眾號:C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!
