为了防止在我的项目的不同文件中存在多个依赖项,并且由于我可能会改变数据的呈现方式,我决定为draw2d 包创建一个“接口”(不是在 golang 意义上,而是在架构方式中)
由于我不需要其他任何东西,我只是重命名了其中一种类型:
type CanvasContext draw2dimg.GraphicContext
在我的一个模块中,我有以下代码(路径是 CanvasContext 变量):
// initialization and some code omitted for clarity
path.SetFillColor(color.RGBA{0x44, 0xff, 0x44, 0xff})
path.SetStrokeColor(color.RGBA{0x44, 0x44, 0x44, 0xff})
path.SetLineWidth(5)
// some more code here
path.Close()
path.FillStroke()
在路径上的所有这些方法调用中,只有 FillStroke 因编译错误而失败:
path.FillStroke 未定义(类型 *drawing.CanvasContext 没有字段或方法 FillStroke)
为了防止它,我必须重新定义 FillStroke,而不是任何其他方法,使用:
func (cc *CanvasContext) FillStroke() {
gc := draw2dimg.GraphicContext(*cc)
gc.FillStroke()
}
为什么我只需要重新定义一个而不是任何其他调用?
相关分类