我們對于圖形會有中心對稱的圖形华蜒,比如函數(shù)f(x)=sinx的圖形逗载,是關(guān)于原點(diǎn)的中心對稱的圖形塘安,還有一種就是成軸對稱的圖形,比如函數(shù)f(x)=conx的圖形殴边,是關(guān)于軸x=0的對稱圖形憎茂。
對于計算機(jī)往往也會呈現(xiàn)對稱的操作,這只是個人的直覺锤岸,并非其他的東西竖幔。
要想說清楚我想表達(dá)的內(nèi)容是困難的,我還是會盡我所能去說明白是偷。我們舉一個比較通用的例子拳氢,C++/JAVA的內(nèi)存分配問題。
C++中的內(nèi)存分配和釋放是要成對出現(xiàn)的蛋铆。這里會有一個假象馋评,就是認(rèn)為內(nèi)存分配和內(nèi)存釋放應(yīng)該是成軸對稱的操作,其實(shí)不是刺啦,他們是一種互逆操作留特,應(yīng)該是一直成中心堆成的操作,之所以會成對出現(xiàn),只是因?yàn)樗麄兪腔ツ娴耐汕唷H绻闶煜?nèi)存分配和釋放的原理苟蹈,你會明白分配和釋放完全不是一個概念。
對于這種特性右核,我們會涉及到編碼的完整性問題汉操。比如C++,你會明顯看到new和delete的操作蒙兰,但是對于JAVA你只會看到new。這里有一個很好的設(shè)計思想芒篷,就是對于這種資源(存在申請和釋放的操作)的操作搜变,我們可以設(shè)計成開放的或者是封閉的。
內(nèi)存這種資源對于C++來說就是開放的针炉,開放的好處是開發(fā)者可以更好的控制資源的使用挠他,壞處是如果開發(fā)者沒有正常的維護(hù)資源,會造成資源的泄漏篡帕。
對于JAVA來說就是封閉的殖侵,封閉的好處是資源的管理,系統(tǒng)可以更好的維護(hù)資源镰烧,壞處是開發(fā)者不能控制系統(tǒng)的資源分配情況拢军。
這種開放的設(shè)計和封閉的設(shè)計往往還會影響到代碼的操作完整性。舉個例子怔鳖,客戶端和服務(wù)器有個長連接和短連接的連接方式(可參考TCP長連接與短連接的區(qū)別)茉唉,那么當(dāng)使用連接資源的時候,長連接是可以重復(fù)使用同一連接資源结执,因?yàn)樵撡Y源并未釋放度陆。短連接就不同了,他必須來回重新分配資源献幔,然后實(shí)現(xiàn)讀寫功能懂傀。