我是一个前python dev有时,苦苦挣扎的明确性质的去。 我想在这里重构的一些代码,以便能够移动的方法从一个结构的一部分的一个接口。 但是,这个过程似乎怪我,我要确认我没做什么错误。
我有以下的接口,结构和方法:
type Executing interface {
Execute()
}
type MyExecuter struct {
attribut1 string
}
//The function I wish to move
func (exe1 *MyExecuter) format() string {
return fmt.sprintf ("formated : %s", exe1.attribut1)
}
func (exe1 *MyExecuter) Execute() {
//Executing
fmt.Println(exe.format())
}
func GetExecuter () Executer{
return MyExecuter{attribut1: "test"}
}
所以我在这里有一个通用的界面执行,这种接口将被访问对象返回的GetExecuter方法。
现在,作为执行情况的一部分,我的一个约执行部,我想要移动的格式方法一部分的一个接口。
所以我做如下:
type Formatting interface {
format() string
}
type Formatter struct {}
func (formatter *Formatter) format(exe1 *MyExecuter) (string) {
return fmt.sprintf ("formated : %s", exe1.attribut1)
}
所以我创建一个新的接口,一个新的空白的结构,并更新我的功能采取的属性作为我以前的结构。
虽然这似乎工作,在我看来这是一个有点令人费解的。 特别部分在这里我需要添加一个参考,到我最初的对象为属性的方法。 我做错了什么在这里,或者,这是正确的方式?