aboutsummaryrefslogtreecommitdiff
path: root/factory/factory.go
diff options
context:
space:
mode:
Diffstat (limited to 'factory/factory.go')
-rw-r--r--factory/factory.go33
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
+}