aboutsummaryrefslogtreecommitdiff
path: root/factory/factory.go
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-12-19 15:16:56 +0000
committerdakkar <dakkar@thenautilus.net>2024-12-19 15:18:37 +0000
commitcafc27302d7fdf69934f3b5007ddf3f5e0fc1cd4 (patch)
tree6164fa82fb8f52b6eb47d06e36f9f97442e4569d /factory/factory.go
parentmove more code in the factory (diff)
downloadgo-example-master.tar.gz
go-example-master.tar.bz2
go-example-master.zip
add another package to better show the patternHEADmaster
Diffstat (limited to 'factory/factory.go')
-rw-r--r--factory/factory.go24
1 files changed, 19 insertions, 5 deletions
diff --git a/factory/factory.go b/factory/factory.go
index 2acac39..ad3262e 100644
--- a/factory/factory.go
+++ b/factory/factory.go
@@ -6,13 +6,15 @@ import (
"github.com/rs/zerolog"
+ "www.thenautilus.net/cgit/go-example/business"
"www.thenautilus.net/cgit/go-example/config"
"www.thenautilus.net/cgit/go-example/logging"
"www.thenautilus.net/cgit/go-example/something"
)
type Factory struct {
- something *something.Something
+ somethingClient *something.Something
+ businessLogic *business.Logic
config *config.MainConfig
logger zerolog.Logger
@@ -43,13 +45,25 @@ func (f *Factory) Logger() zerolog.Logger {
return f.logger
}
-func (f *Factory) Something() *something.Something {
- if f.something == nil {
+func (f *Factory) SomethingClient() *something.Something {
+ if f.somethingClient == nil {
something := something.New(
&f.config.Something,
)
- f.something = &something
+ f.somethingClient = &something
}
- return f.something
+ return f.somethingClient
+}
+
+func (f *Factory) BusinessLogic() *business.Logic {
+ if f.businessLogic == nil {
+ logic := business.New(
+ &f.config.BusinessLogic,
+ f.SomethingClient(),
+ )
+ f.businessLogic = &logic
+ }
+
+ return f.businessLogic
}