diff --git a/go/04-design-pattern/go.mod b/go/04-design-pattern/go.mod new file mode 100644 index 0000000..a21c037 --- /dev/null +++ b/go/04-design-pattern/go.mod @@ -0,0 +1,3 @@ +module gitty.informatik.th-mannheim.de/steger/pr3-ws202627/go/04-design-pattern + +go 1.27.3 diff --git a/go/04-design-pattern/main.go b/go/04-design-pattern/main.go new file mode 100644 index 0000000..e69de29 diff --git a/go/04-design-pattern/patterns/designpattern.go b/go/04-design-pattern/patterns/designpattern.go new file mode 100644 index 0000000..6ceb8ec --- /dev/null +++ b/go/04-design-pattern/patterns/designpattern.go @@ -0,0 +1,35 @@ +package patterns + +type Noodle struct { + Type string + Name string + Length int + Girth int +} + +type NoodleMaker struct { + noodle Noodle +} + +func newNoodleMaker() *NoodleMaker { + return &NoodleMaker{ + noodle: Noodle{"Röhre", "Fusili", 10, 5}, + } +} + +func (b *NoodleMaker) Length(l int) *NoodleMaker { + b.noodle.Length = l + return b +} +func (c *NoodleMaker) Girth(g int) *NoodleMaker { + c.noodle.Girth = g + return c +} +func (d *NoodleMaker) Name(n string) *NoodleMaker { + d.noodle.Name = n + return d +} +func (e *NoodleMaker) Type(t string) *NoodleMaker { + e.noodle.Type = t + return e +}