From ed6cbf46d18a081e3d2fe07c79cb61e3b7d1dd8c Mon Sep 17 00:00:00 2001 From: Edward Date: Mon, 11 May 2020 21:22:57 +0800 Subject: [PATCH] Create README.md --- behavioral/registry/README.md | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 behavioral/registry/README.md diff --git a/behavioral/registry/README.md b/behavioral/registry/README.md new file mode 100644 index 0000000..9c6fba5 --- /dev/null +++ b/behavioral/registry/README.md @@ -0,0 +1,37 @@ +# go-registry + +## A generic interface for the registry pattern + +Because adding a registry pattern to each project can result in a lot of code duplication, +I decided to write a basic registry to slim down other projects. + +The registry itself accepts empty interface for the values to be registered, so there's no need to +worry about type here. I do realize that this is not necessarily the best answer to making a +general purpose type, so I plan on adding some kind of type checking if I can find a good +way to do so. + +--- + +## Usage + +```go +import ( + "fmt" + + "github.com/kaezon/go-registry" +) + +var myReg registry.Registry + +myReg = registry.New() + +newID := myReg.Register(1) + +myReg.RegisterName(2, "second") + +fmt.Println(myReg.Get(newID)) +fmt.Println(myReg.Get("second")) + +myReg.Deregister(newID) +myReg.Deregister("second") +```