【C++沉思錄】 前言
實(shí)用和抽象:提供的接口應(yīng)能很好的解決某個(gè)或某類特定的問(wèn)題(且只為用到的東西付出代價(jià)),并對(duì)用戶隱藏解決的細(xì)節(jié),即使接口實(shí)現(xiàn)的細(xì)節(jié)差強(qiáng)人意
編程語(yǔ)言是一種解決問(wèn)題的工具,沒(méi)有好壞之分,只有誰(shuí)更適合解決某個(gè)特定的問(wèn)題,我們不應(yīng)為了使用自己的工具重寫所有的代碼,而應(yīng)該選擇適合解決問(wèn)題的工具。程序員應(yīng)盡可能的使用機(jī)器代替自己能完成的機(jī)械工作
對(duì)于一個(gè)大的系統(tǒng),應(yīng)分割為各個(gè)小項(xiàng)目,并把小項(xiàng)目之間的關(guān)系理清楚,為每個(gè)項(xiàng)目之間設(shè)計(jì)一套盡可能通用的接口,使每個(gè)項(xiàng)目的成員不必關(guān)心接口之外的東西
工具應(yīng)有一個(gè)共性——抽象的概念,一個(gè)好的工具應(yīng)能把問(wèn)題分解成獨(dú)立的子問(wèn)題,并能確保它們相互獨(dú)立
如果要將一個(gè)問(wèn)題分割為各個(gè)相互獨(dú)立的子問(wèn)題,或設(shè)計(jì)一套通用且穩(wěn)定的接口,就需要對(duì)問(wèn)題和系統(tǒng)本身有深刻的認(rèn)識(shí)和了解,也就是說(shuō),要經(jīng)過(guò)對(duì)架構(gòu)的深思熟慮才開(kāi)始動(dòng)手解決問(wèn)題,否則很可能問(wèn)題解決了一半發(fā)現(xiàn)由于各種耦合而進(jìn)退兩難
?
C++最基本的設(shè)計(jì)原則就是使用類來(lái)表示概念