“確定接口是理想選擇型豁,因而應(yīng)該總是選擇接口而不是具體的類∩序颍”這其實(shí)是一種誘餌迎变。當(dāng)然,對(duì)于創(chuàng)建類飘言,幾乎在任何時(shí)刻衣形,都可以替代為創(chuàng)建一個(gè)接口和一個(gè)工廠。
許多人都掉進(jìn)了這種誘惑的陷阱姿鸿,只要有可能就去創(chuàng)建接口和工廠谆吴。這種邏輯看起來(lái)是因?yàn)樾枰褂貌煌木唧w實(shí)現(xiàn),因此總是應(yīng)該添加這種抽象性苛预。這實(shí)際上已經(jīng)變成了一種草率的設(shè)計(jì)優(yōu)化纪铺。
任何抽象性都應(yīng)該是應(yīng)真正的需求而產(chǎn)生的。當(dāng)必須時(shí)碟渺,你應(yīng)該重構(gòu)接口而不是到處添加額外級(jí)別的間接性,并由此帶來(lái)的額外的復(fù)雜性突诬。這種額外的復(fù)雜性非常顯著苫拍,如果你讓某人去處理這種復(fù)雜性,只是因?yàn)槟阋庾R(shí)到由于以防萬(wàn)一而添加了新接口旺隙,而沒(méi)有其他更有說(shuō)服力的原因绒极,那么好吧,如果我碰上了這種事蔬捷,那么就會(huì)質(zhì)疑此人所做的所有設(shè)計(jì)了垄提。
恰當(dāng)?shù)脑瓌t應(yīng)該是優(yōu)先選擇類而不是接口。從類開(kāi)始周拐,如果接口的必須性變得非常明確铡俐,那么就進(jìn)行重構(gòu)。接口是一種重要的工具妥粟,但是他們?nèi)菀妆粸E用审丘。