iOS封裝淺析

導(dǎo)讀

為什么都說從一個(gè)人的代碼,就可以看出他的開發(fā)經(jīng)驗(yàn)和編程功底.

一份優(yōu)雅的代碼,和一份架構(gòu)混亂,層次雜亂的分別擺在你面前,
當(dāng)你閱讀的時(shí)候,你會(huì)有兩種完全不同的感受.優(yōu)雅的代碼閱讀起來是那樣的舒適.


真正的程序員都領(lǐng)略過程序之美,那些簡潔有力的代碼,精巧嚴(yán)密的構(gòu)思,高效直接的解決方案,美得令人窒息??上В谌找婀I(yè)化,商業(yè)化和利益驅(qū)動(dòng)的IT行業(yè)中,這種美已經(jīng)是越來越少見的東西。但我想每一個(gè)真正熱愛編程的人,都渴望欣賞這種美,渴望在思考過程中一次次“Aha!”式的愉悅。感受其中的妙趣所在.

iOS網(wǎng)易公開課,斯坦福大學(xué)的白胡子老爺爺一直說object-c是一門優(yōu)雅的編程語言,我們應(yīng)該盡量把代碼寫得優(yōu)雅一些.大家有時(shí)間的話可以看看斯坦福大學(xué)公開課上白胡子老爺爺?shù)挠?jì)算器demo.雖然是一個(gè)很簡單的程序,但是里面的思想十分值得我們學(xué)習(xí).在看之前,你可以先思考思考,要是換做是你來寫這個(gè)程序,你會(huì)怎么設(shè)計(jì)這個(gè)程序


我們不要寫完代碼就束之高閣,適當(dāng)?shù)貎?yōu)化代碼結(jié)構(gòu),能夠?yàn)橐院蟮拈_發(fā)帶來許多方便.做過大型項(xiàng)目開發(fā)的朋友們肯定深有體會(huì)

    //當(dāng)程序書寫到一定量的時(shí)候,畢竟要進(jìn)行封裝,重構(gòu)。好處多多啊。
    1.代碼邏輯結(jié)構(gòu)更加清晰。
    2.冗余代碼量減少,更加清爽。
    3.維護(hù)量也較低,符合"對擴(kuò)展開放,對修改關(guān)閉"的軟件架構(gòu)思想等等。

可以看到通過封裝使一部分成員充當(dāng)類與外部的接口,而將其他的成員隱蔽起來,這樣就達(dá)到了對成員訪問權(quán)限的合理控制,使不同類之間的相互影響減少到最低限度,進(jìn)而增強(qiáng)數(shù)據(jù)的安全性和簡化程序的編寫工作。

前面兩點(diǎn)很好理解,那什么是"對擴(kuò)展開放,對修改關(guān)閉"原則呢?這里簡單介紹一下

開閉原則(OCP:Open-Closed Principle)是指在進(jìn)行面向?qū)ο笤O(shè)計(jì)(OOD:Object Oriented Design)中,設(shè)計(jì)類或其他程序單位時(shí),應(yīng)該遵循:

  • 對擴(kuò)展開放(open)
  • 對修改關(guān)閉(closed)

的設(shè)計(jì)原則。

開閉原則是判斷面向?qū)ο笤O(shè)計(jì)是否正確的最基本的原理之一。

根據(jù)開閉原則,在設(shè)計(jì)一個(gè)軟件系統(tǒng)模塊(類,方法)的時(shí)候,應(yīng)該可以在不修改原有的模塊(修改關(guān)閉)的基礎(chǔ)上,能擴(kuò)展其功能(擴(kuò)展開放)。

  • 擴(kuò)展開放:某模塊的功能是可擴(kuò)展的,則該模塊是擴(kuò)展開放的。軟件系統(tǒng)的功能上的可擴(kuò)展性要求模塊是擴(kuò)展開放的。
  • 修改關(guān)閉:某模塊被其他模塊調(diào)用,如果該模塊的源代碼不允許修改,則該模塊修改關(guān)閉的。軟件系統(tǒng)的功能上的穩(wěn)定性,持續(xù)性要求是修改關(guān)閉的。

** 這也是系統(tǒng)設(shè)計(jì)需要遵循開閉原則的原因:**

1)穩(wěn)定性。開閉原則要求擴(kuò)展功能不修改原來的代碼,這可以讓軟件系統(tǒng)在變化中保持穩(wěn)定。
2)擴(kuò)展性。開閉原則要求對擴(kuò)展開放,通過擴(kuò)展提供新的或改變原有的功能,讓軟件系統(tǒng)具有靈活的可擴(kuò)展性。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 轉(zhuǎn)載標(biāo)注聲明:http://www.uml.org.cn/sjms/201211023.asp 目錄:[設(shè)計(jì)模式六...
    Bloo_m閱讀 809評論 0 7
  • 設(shè)計(jì)模式六大原則 設(shè)計(jì)模式六大原則(1):單一職責(zé)原則 定義:不要存在多于一個(gè)導(dǎo)致類變更的原因。通俗的說,即一個(gè)類...
    viva158閱讀 828評論 0 1
  • 先扯兩句 好了,上一篇閑扯過后,算是將我為什么會(huì)把Retrofit說出來了吧(雖然好像什么都沒說),當(dāng)然還有其他框...
    半壽翁閱讀 6,812評論 3 10
  • 《神理解》 杰瑞三歲 媽惹,就是媽媽經(jīng)常罵人 發(fā)惹,就是爸爸天天發(fā)微信 這句話好像沒毛病 杰瑞四歲 媽媽,離婚是不...
    寬詩堂閱讀 177評論 0 3

友情鏈接更多精彩內(nèi)容