特定の type に対して、それぞれが特定の方法で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) {
...
}