diff options
Diffstat (limited to 'factory/factory.go')
-rw-r--r-- | factory/factory.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/factory/factory.go b/factory/factory.go new file mode 100644 index 0000000..ae84911 --- /dev/null +++ b/factory/factory.go @@ -0,0 +1,33 @@ +package factory + +import ( + "github.com/rs/zerolog" + + "www.thenautilus.net/cgit/go-example/config" + "www.thenautilus.net/cgit/go-example/something" +) + +type Factory struct { + something *something.Something + + config *config.MainConfig + logger zerolog.Logger +} + +func New(logger zerolog.Logger, config *config.MainConfig) Factory { + return Factory{ + config: config, + logger: logger, + } +} + +func (f *Factory) Something() *something.Something { + if f.something == nil { + something := something.New( + &f.config.Something, + ) + f.something = &something + } + + return f.something +} |