traittrait_name{publicfunctionfunction_name();}interfaceinterface_name{publicfunctionfunction_name();}在學(xué)php,沒實(shí)際經(jīng)驗(yàn),感覺interface和trait很類似,都是一種特殊的類.等到需要的時(shí)候,在當(dāng)前類中寫清具體方法,在通過implement,extends,use等去調(diào)用它們.這兩種設(shè)計(jì)有什么精妙之處?有什么區(qū)別呢?看了下各種回答,覺得挺有道理.trait和interface恰好相反,interface關(guān)心的是接口,把控全局,把實(shí)現(xiàn)和細(xì)節(jié)丟給其他人,而trait完全不關(guān)心接口(約定),trait內(nèi)部寫好具體的功能細(xì)節(jié),其他人誰要用use引入就行.(正所謂復(fù)用代碼).而trait的"多繼承",在一個(gè)類中引入多個(gè)trait,又進(jìn)一步強(qiáng)化了"復(fù)用代碼".
php中interface和trait的異同?感激不盡
慕田峪4524236
2019-08-17 21:32:17