知识卡片

按需封装而非无脑套模板

专业/工作 · 1370.a.1

内容

不少语言里”给每个字段都写一对 getter/setter”是一种近乎仪式化的传统,哪怕直接暴露字段本来 就没问题也照做不误。发散:这背后是同一种”不 为不存在的需求预先设计”的态度——封装本身是有成本的(多写方法、多一层调用),这个成本只有在 真的需要”防止无效数据”时才值得付出,机械地为每个字段套用同一套模板反而是一种自我增加的负担。

参考来源

- 位置:《Head First Go语言程序设计》第10章《保密:封装和嵌入》(源文件:_epub-src/index_split_001.html) - 结论依据:原文在该章节围绕“不少语言里"给每个字段都写一对getter/setter"是一种近乎仪式化的传统,哪怕直接暴露字段本来就没问题…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:类的普通类 型定义新的方法。 问:我需要在别人的类型上使用自己的方法! 答:首先你需要考虑是否一个函数就够了,函数可以接受你需要的 任何类型作为参数。但是如果你真的需要一个值具有一些你自定义的方 法,在不同的包中给类型增加一些方法,你可以创建一个新的类型并将 其他包的类型作为匿名字段嵌入。我们下一章来看如何操作。 问:我见到其他语言使用的…