From 1872e018d1de12793e794fb45d9bbcea569706fe Mon Sep 17 00:00:00 2001 From: NeonXP Date: Wed, 4 Jan 2023 23:51:40 +0300 Subject: Added fill to factory --- README.md | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'README.md') 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 -- cgit v1.2.3