知识卡片
独立小接口优于分层嵌套接口
内容
面对一组相关类型(比如各种形状)需要共享部分行为时,有OOP背景的人容易下意识地搭一套分层接口——Shaper只声明画图和填色,CircularShaper嵌入Shaper再加半径的读写,RegularPolygonalShaper再嵌入CircularShaper加边发散:这正是接口隔离原则在Go里的具体呈现——多个小接口自由组合永远比一棵固定的接口继承树更灵活,因为组。
参考来源
- 位置:《Go语言程序设计》第6章《面向对象编程》(源文件:_epub-src/OEBPS/text00040.html)
- 结论依据:原文在该章节围绕“面对一组相关类型(比如各种形状)需要共享部分行为时,有OOP背景的人容易下意识地搭一套分层接口——`Shape…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:) (1层)以及 FilledImage() (2层)。 func DrawShapes(img draw.Image, x, y int, shapes ..Shaper) error { for _, shape := range shapes { if err := shape.Draw(img, x, y); err != nil…