对于给定的类型Data
,我想定义一组过滤器,每个过滤器都Data
以某种方式处理。有些过滤器只需要处理数据,有些可能需要额外的参数。
type Data struct {
...
}
我希望能够定义一个过滤器列表,并将它们顺序应用到Data
. 为了实现这一点,我定义了一个Filter
接口:
type Filter interface {
Apply (d *Data) error
}
要定义过滤器,我所要做的就是创建一个新类型并为其定义 Apply 方法。
现在,假设我有一个不需要任何附加信息的过滤器。将其定义为空是一种好习惯struct
吗?
type MySimpleFilter struct {}
func (f *MySimpleFilter) Apply (d *Data) {
...
}