├── .gitignore ├── .golangci.yaml ├── .travis.yml ├── LICENSE ├── README.md ├── _config.yml ├── appveyor.yml ├── behavioral ├── chain_of_responsibility.go ├── chain_of_responsibility_test.go ├── command.go ├── command_test.go ├── doc.go ├── interpreter.go ├── interpreter_test.go ├── iterator.go ├── iterator_test.go ├── mediator.go ├── mediator_test.go ├── memento.go ├── memento_test.go ├── observer.go ├── observer_test.go ├── state.go ├── state_test.go ├── strategy.go ├── strategy_test.go ├── template_method.go ├── template_method_test.go ├── visitor.go └── visitor_test.go ├── creational ├── abstract_factory.go ├── abstract_factory_test.go ├── builder.go ├── builder_test.go ├── doc.go ├── factory_method.go ├── factory_method_test.go ├── object_pool.go ├── object_pool_test.go ├── prototype.go ├── prototype_test.go ├── singleton.go └── singleton_test.go ├── go.mod ├── go.sum ├── jigsaw.png ├── patterns.go ├── structural ├── adapter.go ├── adapter_test.go ├── bridge.go ├── bridge_test.go ├── composite.go ├── composite_test.go ├── decorator.go ├── decorator_test.go ├── doc.go ├── facade.go ├── facade_test.go ├── flyweight.go ├── flyweight_test.go ├── proxy.go └── proxy_test.go └── test.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/.golangci.yaml -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/README.md -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/_config.yml -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/appveyor.yml -------------------------------------------------------------------------------- /behavioral/chain_of_responsibility.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/chain_of_responsibility.go -------------------------------------------------------------------------------- /behavioral/chain_of_responsibility_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/chain_of_responsibility_test.go -------------------------------------------------------------------------------- /behavioral/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/command.go -------------------------------------------------------------------------------- /behavioral/command_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/command_test.go -------------------------------------------------------------------------------- /behavioral/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/doc.go -------------------------------------------------------------------------------- /behavioral/interpreter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/interpreter.go -------------------------------------------------------------------------------- /behavioral/interpreter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/interpreter_test.go -------------------------------------------------------------------------------- /behavioral/iterator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/iterator.go -------------------------------------------------------------------------------- /behavioral/iterator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/iterator_test.go -------------------------------------------------------------------------------- /behavioral/mediator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/mediator.go -------------------------------------------------------------------------------- /behavioral/mediator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/mediator_test.go -------------------------------------------------------------------------------- /behavioral/memento.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/memento.go -------------------------------------------------------------------------------- /behavioral/memento_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/memento_test.go -------------------------------------------------------------------------------- /behavioral/observer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/observer.go -------------------------------------------------------------------------------- /behavioral/observer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/observer_test.go -------------------------------------------------------------------------------- /behavioral/state.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/state.go -------------------------------------------------------------------------------- /behavioral/state_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/state_test.go -------------------------------------------------------------------------------- /behavioral/strategy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/strategy.go -------------------------------------------------------------------------------- /behavioral/strategy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/strategy_test.go -------------------------------------------------------------------------------- /behavioral/template_method.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/template_method.go -------------------------------------------------------------------------------- /behavioral/template_method_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/template_method_test.go -------------------------------------------------------------------------------- /behavioral/visitor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/visitor.go -------------------------------------------------------------------------------- /behavioral/visitor_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/behavioral/visitor_test.go -------------------------------------------------------------------------------- /creational/abstract_factory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/abstract_factory.go -------------------------------------------------------------------------------- /creational/abstract_factory_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/abstract_factory_test.go -------------------------------------------------------------------------------- /creational/builder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/builder.go -------------------------------------------------------------------------------- /creational/builder_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/builder_test.go -------------------------------------------------------------------------------- /creational/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/doc.go -------------------------------------------------------------------------------- /creational/factory_method.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/factory_method.go -------------------------------------------------------------------------------- /creational/factory_method_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/factory_method_test.go -------------------------------------------------------------------------------- /creational/object_pool.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/object_pool.go -------------------------------------------------------------------------------- /creational/object_pool_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/object_pool_test.go -------------------------------------------------------------------------------- /creational/prototype.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/prototype.go -------------------------------------------------------------------------------- /creational/prototype_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/prototype_test.go -------------------------------------------------------------------------------- /creational/singleton.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/singleton.go -------------------------------------------------------------------------------- /creational/singleton_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/creational/singleton_test.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/go.sum -------------------------------------------------------------------------------- /jigsaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/jigsaw.png -------------------------------------------------------------------------------- /patterns.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/patterns.go -------------------------------------------------------------------------------- /structural/adapter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/adapter.go -------------------------------------------------------------------------------- /structural/adapter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/adapter_test.go -------------------------------------------------------------------------------- /structural/bridge.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/bridge.go -------------------------------------------------------------------------------- /structural/bridge_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/bridge_test.go -------------------------------------------------------------------------------- /structural/composite.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/composite.go -------------------------------------------------------------------------------- /structural/composite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/composite_test.go -------------------------------------------------------------------------------- /structural/decorator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/decorator.go -------------------------------------------------------------------------------- /structural/decorator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/decorator_test.go -------------------------------------------------------------------------------- /structural/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/doc.go -------------------------------------------------------------------------------- /structural/facade.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/facade.go -------------------------------------------------------------------------------- /structural/facade_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/facade_test.go -------------------------------------------------------------------------------- /structural/flyweight.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/flyweight.go -------------------------------------------------------------------------------- /structural/flyweight_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/flyweight_test.go -------------------------------------------------------------------------------- /structural/proxy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/proxy.go -------------------------------------------------------------------------------- /structural/proxy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/structural/proxy_test.go -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bvwells/go-patterns/HEAD/test.sh --------------------------------------------------------------------------------