aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md29
1 files changed, 11 insertions, 18 deletions
diff --git a/README.md b/README.md
index 14995b6..14fe2b1 100644
--- a/README.md
+++ b/README.md
@@ -63,21 +63,24 @@ std.ObjectNode{
## Своя фабрика
```
-// Непосредственно фабрика возвращающая заготовки нужного типа
-type NodeFactory func(typ NodeType) (Node, error)
+type Factory interface {
+ // Непосредственно фабрика возвращающая заготовки нужного типа
+ Produce(typ NodeType) (Node, error)
+ // Заполнение заготовки определенного типа соответствующим ей значением
+ Fill(n Node, value any)
+}
type Node interface {
- String() string
+ // Возвращает json представление узла
+ ToJSON() string
}
-// Имплементация узла объекта
type ObjectNode interface {
Node
- SetKetValue(k string, v Node)
- GetByKey(k string) (Node, bool)
+ Set(k string, v Node)
+ Get(k string) (Node, bool)
}
-// Имлементация узла массива
type ArrayNode interface {
Node
Append(v Node)
@@ -85,29 +88,18 @@ type ArrayNode interface {
Len() int
}
-// Имплементация узла строки
type StringNode interface {
Node
- SetString(v string)
- GetString() string
}
-
-// Имплементация узла числа
type NumberNode interface {
Node
- SetNumber(v float64)
- GetNumber() float64
}
-// Имплементация узла булевого типа
type BooleanNode interface {
Node
- SetBool(v bool)
- GetBool() bool
}
-// Имплементация null
type NullNode interface {
Node
}
@@ -118,3 +110,4 @@ type AcceptParent interface {
}
```
+[Пример реализации самой простой фабрики и типов](/std/factory.go) \ No newline at end of file