1
0
mirror of https://github.com/tmrts/go-patterns.git synced 2024-11-29 16:36:06 +03:00
go-patterns/strategy/strategy.go

26 lines
419 B
Go
Raw Normal View History

2016-01-03 08:03:20 +03:00
package strategy
2015-12-23 16:46:15 +03:00
type Operator interface {
Apply(int, int) int
}
type Operation struct {
Operator Operator
}
func (o *Operation) Operate(leftValue, rightValue int) int {
return o.Operator.Apply(leftValue, rightValue)
}
type Multiplication struct{}
func (Multiplication) Apply(lval, rval int) int {
return lval * rval
}
type Addition struct{}
func (Addition) Apply(lval, rval int) int {
return lval + rval
}