C 語言知識集錦

2021-06-27 15:30:15 字數 1125 閱讀 3671

繼承的好處是**重用.哲學上講事物都是有共性和特性的.把共性函式**放入到父類中,把特性函式**放入到子類中,當然是否共性要以參照點的標準.oo中所謂的抽象我自己理解為哲學中的共性 

在同乙個行業中,他們各業務流程往往有很大的相似性,但往往我們都是到乙個專案中就重新寫一套流程**,或者貼上以前的**.可能有很多**都是以前寫過的重複**.造成重複勞動.如果採用繼承應該這樣,首先在父類中做乙個基本上大部分行業專案都必要的簡潔的主流程.在子類中針對具體專案的特殊性做主流程充分的完善的補充.這樣在每個專案中,只針對專案的特殊性編寫**,大大降低重複勞動.當然根據具體流程的複雜多可以劃分多的繼承層次,呈現一種繼承的樹結構,但一定的要保證層次一定要有實際的意義. 

2,為什麼要封裝 

高內聚低偶合的思想簡單的理解同一模組內的提高內聚,不同模組降低偶合.如果說乙個類代表乙個模組或是乙個業務流,那麼a類內部要提高內聚,類的屬性可以看成是內的區域性變數.提高資料的重用.公共函式盡量能被其他主函式,盡量達到功能內聚.如果說是a類和b類,並且是不同模組(也許是同乙個模組下的兩個子模組),那麼b是不能使用a的函式和屬性的,緊進行資料偶合.封裝的作用就體現在這裡. 

再現實中就專案中經常遇到這種情況,某項業務增加或修改一種型別的業務流,自己本身除錯成功了,但是缺影響了此業務下其他的業務流,不得不測試所有得其他原本正常的業務流並不得不針對此做型別判斷的補丁,這種補丁很肯能導致程式結構的不合理. 

a3.為什麼多型

個人認為多型的好處體現在**的可擴充性,比如乙個業務有多個業務流,為了區別不同的型別就的使用判斷,那麼新新增乙個流程就得在過程執行主流程(往往是final,必然是面向過程的)中新增乙個」if then」或是過載乙個函式 

在目前專案中mvc得控制器就是典型的多型.想想如果我們不使用多型那麼怎麼辦?因為對po物件是新新增的,那麼必須針對新的po物件在**中做if判斷,才能用他本身的物件型別指向他.造成過程執行主流程不斷的要變更自己的**. 

總結: 

oo中繼承和多型互相依賴又互相矛盾,沒有繼承就不可能有多型,多型的使用往往又在面向過程的**中.繼承是使子類可以使用父類的功能,而多型使父類能使用子類的功能. 

oo並非只是在編碼階段來處理,實際上在概要設計,詳細設計,資料庫設計的時候就應該oo的思想來設計.提高軟體可重用性和可擴充性.對於想對乙個行業做標準化產品軟體而言,很重要.

C語言習題練習集錦

1.開燈問題 涉及兩個物件 燈和人。倍數問題可以判斷餘數 燈 人 2.蛇形填寫 填數前應該進行檢查,以防後悔。3.堅式問題 4.最長回文子串 include include include define max 5000 char strstart max 10 stralpha max 10 in...

matlab知識集錦

灰度影象擊中與擊不中運算 影象灰度拉伸的作用 灰度拉伸又叫對比度拉伸,它是最基本的一種灰度變換,使用的是最簡單的分段線性變換函式,它的主要思想是提高影象處理時灰度級的動態範圍。它可以有選擇的拉伸某段灰度區間以改善輸出影象。如圖,所示的變換函式的運算結果是將原圖在a到b之間的灰度拉伸到c到d之間。如果...

matlab知識集錦

matlab中的inv函式是什麼意思 inv是求逆矩陣。x 是矩陣轉置 對複數矩陣而言是共軛轉置 matlab rgb2gray 函式是基於什麼原理編寫的,或者這個函式的 以r g b為軸建立空間直角座標系,則rgb圖的每個象素的顏色可以用該三維空間的乙個點來表示,而gray圖的每個象素的顏色可以用...