/************************************************************************ * 類的設計:單一職責原則 * 1、就一個類而言,應該僅有一個引起它變化的原因。 * 2、如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個 * 職責的變化可能削弱或者抑制這個類完成其他職責的能力。這種耦 * 合會導致脆弱的設計,當變化發生時,設計會遭到意想不到的破壞。 * 3、軟件設計真正要做的許多內容,就是發現職責並把那些職責相互分離 * 4、如果你能想到多餘一個的動機去改變一個類,那麼這個類就具有多於 * 一個職責,就應該考慮類的職責分離。 ************************************************************************/ /************************************************************************ * 類的設計:開放-封閉原則 * 1、軟件實體(類、模塊、函數等)應該可以擴展,但是不可修改。 * 2、此原則保證對需求的改變卻可以保持相對穩定,從而使得系統可以 * 在第一個版本以後不斷推出新的版本。 * 3、無論模塊是多麼的“封閉”,都會存在一些無法對之封閉的變化。既然 * 不可能完全封閉,設計人員必須對於他設計的模塊應該對哪種變化封 * 閉作出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽 * 象來隔離那些變化。 * 4、在我們最初編寫代碼時,假設變化不會發生。當變化發生時,我們就 * 創建抽象來隔離以後發生的同類變化。 * 5、面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現有 * 的代碼。 * 6、我們希望的是在開發工作展開不久就知道可能發生的變化。查明可能 * 發生的變化所等待的時間越長,要創建正確的抽象就越困難。 * 7、開放-封閉原則是面向對象設計的核心所在。遵循這個原則可以帶來 * 面向對象技術所聲稱的巨大好處,也就是可維護、可擴展、可複用、 * 靈活性好。開發人員應該僅對程序中呈現出頻繁變化的那些部分作出 * 抽象,然而,對於應用程序中的每個部分都刻意地進行抽象同樣不是 * 一個好主意。拒絕不成熟的抽象和抽象本身一樣重要。切記! ************************************************************************/ /************************************************************************ * 類的設計:依賴倒轉原則[誰也不依賴誰] * 1、(1) 高層模塊不應該依賴低層模塊。兩個都應該依賴抽象。 * (2) 抽象不應該依賴細節,細節應該依賴抽象。即針對接口編程,不 * 要對實現編程。 * 2、里氏代換原則[LSP]:一個軟件實體如果使用的是一個父類的話,那麼 * 一定適用於其子類,而且它察覺不出父類對象和子類對象的區別。也 * 就是說,在軟件裏面,把父類都替換成它的子類,程序的行爲無變化。 * 3、只有當子類可以替換掉父類,軟件單位的功能不受到影響時,父類才 * 能真正被複用,而子類也能夠在父類的基礎上增加新的行爲。 * 4、由於子類型的可替換性才使得使用父類型的模塊在無需修改的情況下 * 就可以擴展。 * 5、依賴倒轉其實可以說是面向對象設計的標誌,用哪種語言來編寫程序 * 不重要,如果編寫時考慮的都是如何針對抽象編程而不是針對細節編 * 程,即程序中所有的依賴關係都是終止於抽象類或者接口,那就是面 * 向對象的設計,反之那就是過程化的設計了。 ************************************************************************/ /************************************************************************ * 類的設計:迪米特法則[最少知識原則] * 1、如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相 * 互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以 * 通過第三者轉發這個調用。 * 2、在類的結構設計上,每一個類都應當儘量降低成員的訪問權限。 * 3、根本思想,是強調了類之間的松耦合。 * 4、類之間的耦合越弱,越有利於複用,一個處在弱耦合的類被修改,不 * 會對有關係的類造成波及。 ************************************************************************/
——By 陳相禮 09/12/02
使用變量 ———— 在Makefile中的定義的變量,就像是C/C++語言中的宏一樣,他代表了一個文本字串,在Makefile中執行的時候其會自動原模原樣地展開在所使用的地方。其與C/C++所不同的是,你可以在Makefile中改變其值。
1、不說"不可能";2、凡事第一反應: 找方法,不找藉口;3、遇到挫折對自己說聲:太好了,機會來了!4、不說消極的話,不落入消極的情緒,一旦發生立即正
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! FPGA(現場可編程門陣列,Field-Programmable Gate Arrays) 自誕生以來,就與 ASIC 社區糾纏不清。上世紀
Swift 在 WWDC14 正式發佈到 2019,經過 5 年的不斷迭代,這其中經歷了標準庫變動,語法的增減。首先使用 Swift 作爲開發語言的開發者們都苦不堪言,戲稱《Swift 從入門到重學》,幾乎每一年 Swift 都會迎來比較大
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 史蒂芬·霍金曾說:“無論你是想揭開宇宙的奧祕,還是想在當今謀求一份職業,基本的計算機編程都是一項必須學習的技能。” 我是在十年前拿到計算
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 很多人在不同領域的學習上都存在一個相同誤區:爲了變得更優秀更專業,我需要學習儘可能多的內容,於是拼命擴充自己的任務清單。但事實上,學習內
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 阿里妹導讀:關於代碼的健壯性,其重要性不言而喻。那麼如何才能寫出健壯的代碼?阿里文娛技術專家長統將從防禦式編程、如何正確使用異常和 DR
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 相對而言,Rust 是軟件行業中比較新的一門編程語言,如果從語法上來比較,該語言與 C++ 其實非常類似,但從另一方面而言,Rust 能更
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! TIOBE編程社區2020年7月編程語言排行榜如期而至,你的生活工作是否也是這樣如期而至呢?看看7月編程語言排行榜又有哪些變化呢?你所心儀
Nasm中文手冊 -------------------------------------------------------------------------------- 第一章: 簡介 --------------
1)、類型比較和轉換問題 short和int類型之間直接比較或轉換都會出現內存錯誤;2)、判斷文件是否結束時,可能存在回車換行文件並沒真正介紹而內容已經結束了,需要用while (!feof(fp_signal_sort) && (fsc
2004年9月5日,星期日。天氣:不好。今天我又跑了。又是和老婆兩個人。又是單車獨騎。我的印象中,我出去跑路的情形大多都是我一部車。和朋友的車一起跑的情況不多。自從我最早的車友吳剛退出摩托車改開汽車以後,我就更難得和朋友一起出去跑。難道是
人體免疫力就是抵抗力。 人體自身有一套免疫系統,當遇到病毒入侵時,就會自發產生抗體(抗病因子)來殺滅病毒,使人體有一定的抗病能力,這就是人體免疫力。每個人的免疫力是不同的,免疫力強的人不易生病,而免疫力弱的人一遇到病毒侵襲,就易誘發各種病
關注夕陽紅,聚焦養老險<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 您開始籌劃養老了嗎? 2004-10-15 00:00:00
http://se.csai.cn/ANALYZE/200904090924001269.htm http://www.docin.com/p-2086224.html