We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f515db9 commit e2de2e1Copy full SHA for e2de2e1
creational/factory_method.go
@@ -0,0 +1,33 @@
1
+package data
2
+
3
+import "io"
4
5
+type Store interface {
6
+ Open(string) (io.ReadWriteCloser, error)
7
+}
8
9
10
+type StorageType int
11
12
+const (
13
+ DiskStorage StorageType = 1 << iota
14
+ TempStorage
15
+ MemoryStorage
16
+)
17
18
+func NewStore(t StorageType) Store {
19
+ switch t {
20
+ case MemoryStorage:
21
+ return newMemoryStorage( /*...*/ )
22
+ case DiskStorage:
23
+ return newDiskStorage( /*...*/ )
24
+ default:
25
+ return newTempStorage( /*...*/ )
26
+ }
27
28
29
+s, _ := NewStore(data.MemoryStorage)
30
+f, _ := s.Open("file")
31
32
+n, _ := f.Write([]byte("data"))
33
+defer f.Close()
0 commit comments