├── .gitignore ├── README.md ├── abstractFactory ├── adidas.go ├── adidasShirt.go ├── adidasShoe.go ├── go.mod ├── iShirt.go ├── iShoe.go ├── iSportsFactory.go ├── main.go ├── nike.go ├── nikeShirt.go ├── nikeShoe.go └── output.txt ├── adapter ├── client.go ├── computer.go ├── go.mod ├── mac.go ├── main.go ├── output.txt ├── windows.go └── windowsAdapter.go ├── bridge ├── computer.go ├── epson.go ├── go.mod ├── hp.go ├── mac.go ├── main.go ├── output.txt ├── printer.go └── windows.go ├── chainOfResponsibility ├── cashier.go ├── department.go ├── departmentBase.go ├── doctor.go ├── go.mod ├── main.go ├── medical.go ├── output.txt ├── patient.go └── reception.go ├── command ├── button.go ├── command.go ├── device.go ├── go.mod ├── main.go ├── offCommand.go ├── onCommand.go ├── output.txt └── tv.go ├── composite ├── component.go ├── file.go ├── folder.go ├── go.mod ├── main.go └── output.txt ├── decorator ├── cheeseTopping.go ├── go.mod ├── main.go ├── output.txt ├── pizza.go ├── tomatoTopping.go └── veggieMania.go ├── facade ├── account.go ├── go.mod ├── ledger.go ├── main.go ├── notification.go ├── output.txt ├── securityCode.go ├── wallet.go └── walletFacade.go ├── factory ├── ak47.go ├── go.mod ├── gun.go ├── gunFactory.go ├── iGun.go ├── main.go ├── musket.go ├── output.txt └── player.go ├── flyweight ├── counterTerroristDress.go ├── dress.go ├── dressFactory.go ├── game.go ├── go.mod ├── main.go ├── output.txt ├── player.go └── terroristDress.go ├── iterator ├── collection.go ├── go.mod ├── iterator.go ├── main.go ├── output.txt ├── user.go ├── userCollection.go └── userIterator.go ├── mediator ├── freightTrain.go ├── go.mod ├── main.go ├── mediator.go ├── output.txt ├── passengerTrain.go ├── stationManager.go └── train.go ├── memento ├── caretaker.go ├── go.mod ├── main.go ├── memento.go ├── originator.go └── output.txt ├── observer ├── customer.go ├── go.mod ├── item.go ├── main.go ├── observer.go ├── output.txt └── subject.go ├── prototype ├── file.go ├── folder.go ├── go.mod ├── inode.go ├── main.go └── output.txt ├── proxy ├── application.go ├── go.mod ├── main.go ├── nginx.go ├── output.txt └── server.go ├── singleton ├── default │ ├── main.go │ ├── output.txt │ └── single.go ├── go.mod └── syncOnce │ ├── main.go │ ├── output.txt │ └── syncOnce.go ├── state ├── go.mod ├── hasItemState.go ├── hasMoneyState.go ├── itemRequestedState.go ├── main.go ├── noItemState.go ├── output.txt ├── state.go └── vendingMachine.go ├── strategy ├── cache.go ├── evictionAlgo.go ├── fifo.go ├── go.mod ├── lfu.go ├── lru.go ├── main.go └── output.txt ├── template ├── email.go ├── go.mod ├── main.go ├── otp.go ├── output.txt └── sms.go └── visitor ├── areaCalculator.go ├── circle.go ├── go.mod ├── main.go ├── middleCoordinates.go ├── output.txt ├── rectangle.go ├── shape.go ├── square.go └── visitor.go /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/README.md -------------------------------------------------------------------------------- /abstractFactory/adidas.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/adidas.go -------------------------------------------------------------------------------- /abstractFactory/adidasShirt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/adidasShirt.go -------------------------------------------------------------------------------- /abstractFactory/adidasShoe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/adidasShoe.go -------------------------------------------------------------------------------- /abstractFactory/go.mod: -------------------------------------------------------------------------------- 1 | module abstractFactory 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /abstractFactory/iShirt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/iShirt.go -------------------------------------------------------------------------------- /abstractFactory/iShoe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/iShoe.go -------------------------------------------------------------------------------- /abstractFactory/iSportsFactory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/iSportsFactory.go -------------------------------------------------------------------------------- /abstractFactory/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/main.go -------------------------------------------------------------------------------- /abstractFactory/nike.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/nike.go -------------------------------------------------------------------------------- /abstractFactory/nikeShirt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/nikeShirt.go -------------------------------------------------------------------------------- /abstractFactory/nikeShoe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/nikeShoe.go -------------------------------------------------------------------------------- /abstractFactory/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/abstractFactory/output.txt -------------------------------------------------------------------------------- /adapter/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/client.go -------------------------------------------------------------------------------- /adapter/computer.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type Computer interface { 4 | InsertIntoLightningPort() 5 | } 6 | -------------------------------------------------------------------------------- /adapter/go.mod: -------------------------------------------------------------------------------- 1 | module adapter 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /adapter/mac.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/mac.go -------------------------------------------------------------------------------- /adapter/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/main.go -------------------------------------------------------------------------------- /adapter/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/output.txt -------------------------------------------------------------------------------- /adapter/windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/windows.go -------------------------------------------------------------------------------- /adapter/windowsAdapter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/adapter/windowsAdapter.go -------------------------------------------------------------------------------- /bridge/computer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/computer.go -------------------------------------------------------------------------------- /bridge/epson.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/epson.go -------------------------------------------------------------------------------- /bridge/go.mod: -------------------------------------------------------------------------------- 1 | module bridge 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /bridge/hp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/hp.go -------------------------------------------------------------------------------- /bridge/mac.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/mac.go -------------------------------------------------------------------------------- /bridge/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/main.go -------------------------------------------------------------------------------- /bridge/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/output.txt -------------------------------------------------------------------------------- /bridge/printer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/printer.go -------------------------------------------------------------------------------- /bridge/windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/bridge/windows.go -------------------------------------------------------------------------------- /chainOfResponsibility/cashier.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/cashier.go -------------------------------------------------------------------------------- /chainOfResponsibility/department.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/department.go -------------------------------------------------------------------------------- /chainOfResponsibility/departmentBase.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/departmentBase.go -------------------------------------------------------------------------------- /chainOfResponsibility/doctor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/doctor.go -------------------------------------------------------------------------------- /chainOfResponsibility/go.mod: -------------------------------------------------------------------------------- 1 | module chainOfResponsibility 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /chainOfResponsibility/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/main.go -------------------------------------------------------------------------------- /chainOfResponsibility/medical.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/medical.go -------------------------------------------------------------------------------- /chainOfResponsibility/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/output.txt -------------------------------------------------------------------------------- /chainOfResponsibility/patient.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/patient.go -------------------------------------------------------------------------------- /chainOfResponsibility/reception.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/chainOfResponsibility/reception.go -------------------------------------------------------------------------------- /command/button.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/button.go -------------------------------------------------------------------------------- /command/command.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type Command interface { 4 | execute() 5 | } 6 | -------------------------------------------------------------------------------- /command/device.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/device.go -------------------------------------------------------------------------------- /command/go.mod: -------------------------------------------------------------------------------- 1 | module command 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /command/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/main.go -------------------------------------------------------------------------------- /command/offCommand.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/offCommand.go -------------------------------------------------------------------------------- /command/onCommand.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/onCommand.go -------------------------------------------------------------------------------- /command/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/output.txt -------------------------------------------------------------------------------- /command/tv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/command/tv.go -------------------------------------------------------------------------------- /composite/component.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type Component interface { 4 | search(string) 5 | } 6 | -------------------------------------------------------------------------------- /composite/file.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/composite/file.go -------------------------------------------------------------------------------- /composite/folder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/composite/folder.go -------------------------------------------------------------------------------- /composite/go.mod: -------------------------------------------------------------------------------- 1 | module composite 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /composite/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/composite/main.go -------------------------------------------------------------------------------- /composite/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/composite/output.txt -------------------------------------------------------------------------------- /decorator/cheeseTopping.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/decorator/cheeseTopping.go -------------------------------------------------------------------------------- /decorator/go.mod: -------------------------------------------------------------------------------- 1 | module decorator 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /decorator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/decorator/main.go -------------------------------------------------------------------------------- /decorator/output.txt: -------------------------------------------------------------------------------- 1 | Price of veggeMania with tomato and cheese topping is 32 -------------------------------------------------------------------------------- /decorator/pizza.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type IPizza interface { 4 | getPrice() int 5 | } 6 | -------------------------------------------------------------------------------- /decorator/tomatoTopping.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/decorator/tomatoTopping.go -------------------------------------------------------------------------------- /decorator/veggieMania.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/decorator/veggieMania.go -------------------------------------------------------------------------------- /facade/account.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/account.go -------------------------------------------------------------------------------- /facade/go.mod: -------------------------------------------------------------------------------- 1 | module facade 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /facade/ledger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/ledger.go -------------------------------------------------------------------------------- /facade/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/main.go -------------------------------------------------------------------------------- /facade/notification.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/notification.go -------------------------------------------------------------------------------- /facade/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/output.txt -------------------------------------------------------------------------------- /facade/securityCode.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/securityCode.go -------------------------------------------------------------------------------- /facade/wallet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/wallet.go -------------------------------------------------------------------------------- /facade/walletFacade.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/facade/walletFacade.go -------------------------------------------------------------------------------- /factory/ak47.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/ak47.go -------------------------------------------------------------------------------- /factory/go.mod: -------------------------------------------------------------------------------- 1 | module factory 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /factory/gun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/gun.go -------------------------------------------------------------------------------- /factory/gunFactory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/gunFactory.go -------------------------------------------------------------------------------- /factory/iGun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/iGun.go -------------------------------------------------------------------------------- /factory/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/main.go -------------------------------------------------------------------------------- /factory/musket.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/musket.go -------------------------------------------------------------------------------- /factory/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/factory/output.txt -------------------------------------------------------------------------------- /factory/player.go: -------------------------------------------------------------------------------- 1 | package main 2 | -------------------------------------------------------------------------------- /flyweight/counterTerroristDress.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/counterTerroristDress.go -------------------------------------------------------------------------------- /flyweight/dress.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type Dress interface { 4 | getColor() string 5 | } 6 | -------------------------------------------------------------------------------- /flyweight/dressFactory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/dressFactory.go -------------------------------------------------------------------------------- /flyweight/game.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/game.go -------------------------------------------------------------------------------- /flyweight/go.mod: -------------------------------------------------------------------------------- 1 | module flyweight 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /flyweight/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/main.go -------------------------------------------------------------------------------- /flyweight/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/output.txt -------------------------------------------------------------------------------- /flyweight/player.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/player.go -------------------------------------------------------------------------------- /flyweight/terroristDress.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/flyweight/terroristDress.go -------------------------------------------------------------------------------- /iterator/collection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/collection.go -------------------------------------------------------------------------------- /iterator/go.mod: -------------------------------------------------------------------------------- 1 | module iterator 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /iterator/iterator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/iterator.go -------------------------------------------------------------------------------- /iterator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/main.go -------------------------------------------------------------------------------- /iterator/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/output.txt -------------------------------------------------------------------------------- /iterator/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/user.go -------------------------------------------------------------------------------- /iterator/userCollection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/userCollection.go -------------------------------------------------------------------------------- /iterator/userIterator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/iterator/userIterator.go -------------------------------------------------------------------------------- /mediator/freightTrain.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/freightTrain.go -------------------------------------------------------------------------------- /mediator/go.mod: -------------------------------------------------------------------------------- 1 | module mediator 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /mediator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/main.go -------------------------------------------------------------------------------- /mediator/mediator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/mediator.go -------------------------------------------------------------------------------- /mediator/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/output.txt -------------------------------------------------------------------------------- /mediator/passengerTrain.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/passengerTrain.go -------------------------------------------------------------------------------- /mediator/stationManager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/stationManager.go -------------------------------------------------------------------------------- /mediator/train.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/mediator/train.go -------------------------------------------------------------------------------- /memento/caretaker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/memento/caretaker.go -------------------------------------------------------------------------------- /memento/go.mod: -------------------------------------------------------------------------------- 1 | module memento 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /memento/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/memento/main.go -------------------------------------------------------------------------------- /memento/memento.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/memento/memento.go -------------------------------------------------------------------------------- /memento/originator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/memento/originator.go -------------------------------------------------------------------------------- /memento/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/memento/output.txt -------------------------------------------------------------------------------- /observer/customer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/customer.go -------------------------------------------------------------------------------- /observer/go.mod: -------------------------------------------------------------------------------- 1 | module observer 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /observer/item.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/item.go -------------------------------------------------------------------------------- /observer/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/main.go -------------------------------------------------------------------------------- /observer/observer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/observer.go -------------------------------------------------------------------------------- /observer/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/output.txt -------------------------------------------------------------------------------- /observer/subject.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/observer/subject.go -------------------------------------------------------------------------------- /prototype/file.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/prototype/file.go -------------------------------------------------------------------------------- /prototype/folder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/prototype/folder.go -------------------------------------------------------------------------------- /prototype/go.mod: -------------------------------------------------------------------------------- 1 | module prototype 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /prototype/inode.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/prototype/inode.go -------------------------------------------------------------------------------- /prototype/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/prototype/main.go -------------------------------------------------------------------------------- /prototype/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/prototype/output.txt -------------------------------------------------------------------------------- /proxy/application.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/proxy/application.go -------------------------------------------------------------------------------- /proxy/go.mod: -------------------------------------------------------------------------------- 1 | module proxy 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /proxy/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/proxy/main.go -------------------------------------------------------------------------------- /proxy/nginx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/proxy/nginx.go -------------------------------------------------------------------------------- /proxy/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/proxy/output.txt -------------------------------------------------------------------------------- /proxy/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/proxy/server.go -------------------------------------------------------------------------------- /singleton/default/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/default/main.go -------------------------------------------------------------------------------- /singleton/default/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/default/output.txt -------------------------------------------------------------------------------- /singleton/default/single.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/default/single.go -------------------------------------------------------------------------------- /singleton/go.mod: -------------------------------------------------------------------------------- 1 | module singleton 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /singleton/syncOnce/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/syncOnce/main.go -------------------------------------------------------------------------------- /singleton/syncOnce/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/syncOnce/output.txt -------------------------------------------------------------------------------- /singleton/syncOnce/syncOnce.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/singleton/syncOnce/syncOnce.go -------------------------------------------------------------------------------- /state/go.mod: -------------------------------------------------------------------------------- 1 | module state 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /state/hasItemState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/hasItemState.go -------------------------------------------------------------------------------- /state/hasMoneyState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/hasMoneyState.go -------------------------------------------------------------------------------- /state/itemRequestedState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/itemRequestedState.go -------------------------------------------------------------------------------- /state/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/main.go -------------------------------------------------------------------------------- /state/noItemState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/noItemState.go -------------------------------------------------------------------------------- /state/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/output.txt -------------------------------------------------------------------------------- /state/state.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/state.go -------------------------------------------------------------------------------- /state/vendingMachine.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/state/vendingMachine.go -------------------------------------------------------------------------------- /strategy/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/cache.go -------------------------------------------------------------------------------- /strategy/evictionAlgo.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | type EvictionAlgo interface { 4 | evict(c *Cache) 5 | } 6 | -------------------------------------------------------------------------------- /strategy/fifo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/fifo.go -------------------------------------------------------------------------------- /strategy/go.mod: -------------------------------------------------------------------------------- 1 | module strategy 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /strategy/lfu.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/lfu.go -------------------------------------------------------------------------------- /strategy/lru.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/lru.go -------------------------------------------------------------------------------- /strategy/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/main.go -------------------------------------------------------------------------------- /strategy/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/strategy/output.txt -------------------------------------------------------------------------------- /template/email.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/template/email.go -------------------------------------------------------------------------------- /template/go.mod: -------------------------------------------------------------------------------- 1 | module template 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /template/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/template/main.go -------------------------------------------------------------------------------- /template/otp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/template/otp.go -------------------------------------------------------------------------------- /template/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/template/output.txt -------------------------------------------------------------------------------- /template/sms.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/template/sms.go -------------------------------------------------------------------------------- /visitor/areaCalculator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/areaCalculator.go -------------------------------------------------------------------------------- /visitor/circle.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/circle.go -------------------------------------------------------------------------------- /visitor/go.mod: -------------------------------------------------------------------------------- 1 | module visitor 2 | 3 | go 1.19 4 | -------------------------------------------------------------------------------- /visitor/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/main.go -------------------------------------------------------------------------------- /visitor/middleCoordinates.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/middleCoordinates.go -------------------------------------------------------------------------------- /visitor/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/output.txt -------------------------------------------------------------------------------- /visitor/rectangle.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/rectangle.go -------------------------------------------------------------------------------- /visitor/shape.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/shape.go -------------------------------------------------------------------------------- /visitor/square.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/square.go -------------------------------------------------------------------------------- /visitor/visitor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RefactoringGuru/design-patterns-go/HEAD/visitor/visitor.go --------------------------------------------------------------------------------