抽象挪凑,是以命名的方式,劃定了什么是它所包含的逛艰,什么不是躏碳。
使用合理的抽象讓系統(tǒng)的復(fù)雜度大大降低,也是讓代碼變的清晰的最重要方法散怖。
也就是說(shuō)菇绵,抽象的性質(zhì)包含了:
1 命名
2 劃定包含范圍
3 劃定不包含范圍
4 降低運(yùn)算復(fù)雜度,使運(yùn)算量降到可承受范圍镇眷。
5 分層咬最,上層架構(gòu)恰好是底層架構(gòu)的
有意義的混沌。而編程語(yǔ)言的包欠动,也正是語(yǔ)言所形成的上層混沌永乌。
6 防止重復(fù),一再的實(shí)現(xiàn)同一功能具伍。
或許有些人并不知道這些翅雏,但他們自發(fā)的在用了。也就是說(shuō)人芽,這些是大自然的規(guī)律望几,人會(huì)主動(dòng)或被動(dòng)的用到它。當(dāng)然被動(dòng)并沒(méi)有主動(dòng)的效果好萤厅。
而一個(gè)好的抽象橄抹,一定是靈活靴迫、方便交互的,類(lèi)似flask楼誓∈妇ⅲ可以與若干軟件包形成交互。
而如今軟件抽象架構(gòu)和大自然的區(qū)別在于慌随,在架構(gòu)本身子系統(tǒng)之間的聯(lián)系芬沉,很多是沒(méi)有意義的,甚至無(wú)法聯(lián)系阁猜。
那些有意義的聯(lián)系丸逸,通常是經(jīng)過(guò)精心選擇的,這會(huì)產(chǎn)生預(yù)定的效果剃袍,但抹殺了很多可能性黄刚。
要定義子系統(tǒng)之間的兩兩交互,也就是說(shuō)民效,必須允許很多無(wú)意義的產(chǎn)出憔维,這不是最有效的方式,但會(huì)有潛力生成強(qiáng)大的混沌畏邢。
允許代碼進(jìn)化业扒,設(shè)定進(jìn)化條件,朝著那個(gè)方向舒萎,人類(lèi)的需求程储。
人的選擇和大自然的進(jìn)化,哪個(gè)會(huì)強(qiáng)一點(diǎn)呢臂寝?