Skip to content

saskaradit/go-design-pattern

Repository files navigation

Go Design Pattern

this repository is only a sandbox aswell as an example tutorial, and in the event of you encountering this repository i hope you learn something new.

Note

The design pattern originally works on pure OOP Languages, so I am trying my way around it.

├── SOLID
│   ├── dependency-inversion
│   │   └── dip.go
│   ├── interface-segregation
│   │   └── isp.go
│   ├── liskov-substitution
│   │   └── lsp.go
│   ├── open-closed
│   │   └── ocp.go
│   └── single-responsiblity
│       └── srp.go
├── adapter
│   └── adapter.go
├── bridge
│   └── bridge.go
├── builder
│   ├── builder
│   │   └── builder.go
│   ├── builder-facets
│   │   └── builder-facets.go
│   ├── builder-parameter
│   │   └── builder-parameter.go
│   └── functional-builder
│       └── functional-builder.go
├── chain-of-responsibility
│   ├── broker-chain
│   │   └── broker.go
│   └── method-chain
│       └── chain.go
├── command
│   └── command.go
├── composite
│   ├── geometric
│   │   └── geometric.go
│   └── neural-network
│       └── neural-network.go
├── decorator
│   ├── decorator
│   │   └── decorator.go
│   └── multi-aggregate
│       └── decorator.go
├── facade
│   └── facade.go
├── factories
│   ├── factories-function
│   │   └── factory-function.go
│   ├── factory-generator
│   │   └── factory-generator.go
│   ├── interface-factory
│   │   └── interface-factory.go
│   └── prototype-factory
│       └── prototype-factory.go
├── flyweight
│   ├── text-formatting
│   │   └── format.go
│   └── username
│       └── username.go
├── interpreter
│   └── lexing.go
├── iterator
│   ├── iterator
│   │   └── iterator.go
│   └── tree-traversal
│       └── tree.go
├── mediator
│   └── chat-room.go
├── memento
│   ├── memento
│   │   └── memento.go
│   └── undo-redo
│       └── undo-redo.go
├── observer
│   ├── observer
│   │   └── observer-able.go
│   ├── property-dependency
│   │   └── property-dependency.go
│   └── property-observer
│       └── property-observer.go
├── prototype
│   ├── copy-method
│   │   └── copy-method.go
│   ├── deep-copying
│   │   └── deep-copy.go
│   ├── prototype-factory
│   │   └── prototype-factory.go
│   └── serialize-copy
│       └── serialize-copy.go
├── proxy
│   ├── protection
│   │   └── protection-proxy.go
│   └── virtual-proxy
│       └── virtual-proxy.go
├── singleton
│   ├── capitals.txt
│   └── singleton.go
├── state
│   ├── classic
│   │   └── classic.go
│   ├── handmade
│   │   └── handmade.go
│   └── switch
│       └── switch-state.go
├── strategy
│   └── strategy.go
├── template-method
│   ├── functional
│   │   └── functional.go
│   └── template
│       └── template.go
└── visitor
    ├── classic
    │   └── classic.go
    ├── intrusive
    │   └── intrusive.go
    └── reflective
        └── reflective.go

About

Design pattern tutorial

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages