??舉個通俗易懂的例子:
??用面向過程的方法寫出來的程序是一份蛋炒飯氮发,而用面向?qū)ο髮懗鰜淼某绦蚴且环萆w澆飯。所謂蓋澆飯砸捏,北京叫蓋飯谬运,東北叫燴飯,廣東叫碟頭飯垦藏,就是在一碗白米飯上面澆上一份蓋菜梆暖,你喜歡什么菜,你就澆上什么菜掂骏。我覺得這個比喻還是比較貼切的轰驳。
??蛋炒飯制作的細節(jié),我不太清楚,因為我沒當過廚師滑废,也不會做飯蝗肪,但最后的一道工序肯定是把米飯和雞蛋混在一起炒勻。蓋澆飯呢蠕趁,則是把米飯和蓋菜分別做好薛闪,你如果要一份紅燒肉蓋飯呢,就給你澆一份紅燒肉俺陋;如果要一份青椒土豆蓋澆飯豁延,就給澆一份青椒土豆絲。
??蛋炒飯的好處就是入味均勻腊状,吃起來香诱咏。如果恰巧你不愛吃雞蛋,只愛吃青菜的話缴挖,那么唯一的辦法就是全部倒掉袋狞,重新做一份青菜炒飯了。蓋澆飯就沒這么多麻煩映屋,你只需要把上面的蓋菜撥掉苟鸯,更換一份蓋菜就可以了。蓋澆飯的缺點是入味不均棚点,可能沒有蛋炒飯那么香早处。
??到底是蛋炒飯好還是蓋澆飯好呢?其實這類問題都很難回答瘫析,非要比個上下高低的話砌梆,就必須設(shè)定一個場景,否則只能說是各有所長贬循。如果大家都不是美食家咸包,沒那么多講究,那么從飯館角度來講的話甘有,做蓋澆飯顯然比蛋炒飯更有優(yōu)勢诉儒,他可以組合出來任意多的組合,而且不會浪費亏掀。
??蓋澆飯的好處就是"菜"“飯"分離,從而提高了制作蓋澆飯的靈活性泛释。飯不滿意就換飯滤愕,菜不滿意換菜。用軟件工程的專業(yè)術(shù)語就是"可維護性"比較好怜校,“飯” 和"菜"的耦合度比較低间影。蛋炒飯將"蛋”“飯"攪和在一起,想換"蛋”"飯"中任何一種都很困難茄茁,耦合度很高魂贬,以至于"可維護性"比較差巩割。軟件工程追求的目標之一就是可維護性,可維護性主要表現(xiàn)在3個方面:可理解性付燥、可測試性和可修改性宣谈。面向?qū)ο蟮暮锰幹痪褪秋@著的改善了軟件系統(tǒng)的可維護性。
簡單的總結(jié)一下键科!
面向過程
優(yōu)點:性能比面向?qū)ο蟾呶懦螅驗轭愓{(diào)用時需要實例化,開銷比較大勋颖,比較消耗資源;比如單片機嗦嗡、嵌入式開發(fā)、 Linux/Unix等一般采用面向過程開發(fā)饭玲,性能是最重要的因素侥祭。
缺點:沒有面向?qū)ο笠拙S護、易復(fù)用茄厘、易擴展
面向?qū)ο?/p>
優(yōu)點:易維護卑硫、易復(fù)用、易擴展蚕断,由于面向?qū)ο笥蟹庋b欢伏、繼承、多態(tài)性的特性亿乳,可以設(shè)計出低耦合的系統(tǒng)硝拧,使系統(tǒng) 更加靈活、更加易于維護
缺點:性能比面向過程低