1 回答

TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊
您可能希望開發(fā)人員閱讀您提供的文檔,并且您可以按照您設(shè)置的規(guī)則依賴他們。是的,懶惰的開發(fā)人員時不時會撞到腦袋,但開發(fā)的過程并非不需要學(xué)習(xí)。一切都不能明確或強(qiáng)制執(zhí)行,這沒關(guān)系。
如果你有一個導(dǎo)出的結(jié)構(gòu)類型Example
并且你提供了一個構(gòu)造函數(shù)NewExample()
,那就是一個明確的指示,NewExample()
應(yīng)該用來構(gòu)造 的值Example
。任何試圖手動構(gòu)建的人Example
都應(yīng)該知道必須設(shè)置哪些字段才能使其“可操作”。目標(biāo)始終是使零值完全發(fā)揮作用,但如果無法實現(xiàn),則構(gòu)造函數(shù)是慣用的方法。
這并不少見,標(biāo)準(zhǔn)庫中有無數(shù)示例,例如http.Request
,?json.Encoder
,?json.Decoder
,?io.SectionReader
,?template.Template
。
您必須確保的是,如果您的包返回結(jié)構(gòu)的值,則必須(應(yīng)該)正確初始化它們。而且,如果其他人希望傳遞他們創(chuàng)建的結(jié)構(gòu)的值,則您必須為他們提供一種簡單的方法來創(chuàng)建結(jié)構(gòu)的有效值(構(gòu)造函數(shù))。其他開發(fā)人員自己創(chuàng)建的自定義結(jié)構(gòu)值是否“有效”,這與您無關(guān)。
- 1 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報