1.物件導向的三個基本元素,五個基本原則
三個基本元素:封裝、繼承、多型 五大基本原則:單一職責原則(srp) 、開發封閉原則(ocp)、依賴倒轉原則(dip)、黎克特制代換原則(lsp)、介面分離原則
srp:是指乙個類的功能要單一,不能包羅永珍。如同乙個人一樣,分配的工作不能太多,否則一天到晚雖然忙忙碌碌的,但效率卻高不起來
對乙個類而言,應該僅有乙個引起它變化的原因
ocp:乙個模組在擴充套件性方面應該是開放的而在更改性方面應該是封閉的。比如:乙個網路模組,原來只服務端功能,而現在要加入客戶端功能,
那麼應當在不用修改服務端功能代 碼的前提下,就能夠增加客戶端功能的實現**,這要求在設計之初,就應當將服務端和客戶端分開,公共部分抽象出來
軟體實體應該是可以擴充套件的,但是不可修改
dip: 做專案時,發現業務邏輯的高層模組都是一樣的,但客戶希望使用不同的資料庫或儲存資訊方式,這時就出現麻煩,高層模組和資料庫繫結在一起,沒辦法復用。
高層模組不應該依賴於底層模組。兩個模組都應該依賴於抽象。
抽象不應該依賴於細節。細節更應該依賴於抽象。
lsp: 只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。
子型別必須能夠替換掉它們的基型別
isp:乙個介面應該保證,實現該介面的例項物件可以只呈現為單一的角色;這樣,當某個客戶程式的要求發生變化,而迫使介面發生改變時,影響到其他客戶程式的 可 能性最小
多個專用介面優於乙個單一的通用介面
C 常見面試題
1.c中static有什麼作用 1 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性,故使用static在不同的檔案中定義同名函式和同名變數,而不必擔心命名衝突。2 static的第二個作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就...
C常見面試題
1.bool型別,值為true或flase 正確答案 bool flag if flag if flag 以下均為不良風格 if flag true if flag 1 if flag false if flag 0 2.char 3.int int x if x 0 if x 0 4.float ...
C 常見面試題
vector中這兩個屬性很容易弄混淆。size是當前vector容器真實占用的大小,也就是容器當前擁有多少個容器。capacity是指在發生realloc前能允許的最大元素數,即預分配的記憶體空間。當然,這兩個屬性分別對應兩個方法 resize 和reserve 使用resize 容器內的物件記憶體...