文件名称:go-patterns:Golang 设计模式
文件大小:424KB
文件格式:ZIP
更新时间:2024-08-24 14:13:00
Go
Golang设计模式思想 前言 一切设计模式都是灵活应用struct的组合模式,以及go隐形继承接口的特性 go中的interface就是一些方法装饰, 而struct并不依赖于接口 设计模式类型 创建模式 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示 使一个类的实例化延迟到其子类, 定义一个用于创建对象的接口, 让子类决定将哪一个类实例化 根据需求将预测的对象保存到channel中, 用于对象的生成成本大于维持成本 单例模式是最简单的设计模式之一, 保证一个类仅有一个实例, 并提供一个全局的访问接口 生成器模式可以允许使用者在生成要使用的下一个值时与生成器并行运行 提供一个创建一系列相关或相互依赖对象的接口, 而无需指定它们具体的类 复制一个已存在的实例 结构模式 装饰模式使用对象组合的方式动态改变或增加对象行为, 在原对象的基础上增加功能 代理模式用于延迟
【文件预览】:
go-patterns-master
----.gitignore(14B)
----go.mod(54B)
----16-prototype-pattern()
--------prototype_test.go(288B)
--------prototype.go(311B)
----21-bridge-pattern()
--------bridge.go(1KB)
--------bridge_test.go(257B)
----02-factory-method-patterns()
--------factory_method_test.go(919B)
--------factory_method.go(1KB)
----18-iterator-pattern()
--------iterator_test.go(340B)
--------iterator.go(1KB)
----01-builder-patterns()
--------builder_test.go(576B)
--------builder.go(1KB)
----17-flyweight-pattern()
--------flyweight_test.go(366B)
--------flyweight.go(913B)
----08-strategy-pattern()
--------strategy_test.go(936B)
--------strategy.go(755B)
----go-design-image.jpg(398KB)
----27-publish-and-subscribe()
--------pubsub.go(2KB)
----10-generator-pattern()
--------generator.go(337B)
--------generator_test.go(144B)
----11-abstract-factory()
--------abstractfactory_test.go(318B)
--------abstractfactory.go(602B)
----main.go(414B)
----README.md(5KB)
----20-template-method-pattern()
--------template_method_test.go(488B)
--------template_method.go(1KB)
----04-singleton-pattern()
--------singleton.go(396B)
--------singleton_test.go(299B)
----06-proxy-pattern()
--------proxy.go(918B)
--------proxy_test.go(196B)
----14-state-pattern()
--------state.go(2KB)
--------state_test.go(591B)
----03-object-pool-pattern()
--------object_pool.go(613B)
--------object_pool_test.go(241B)
----05-decorator-pattern()
--------decorator_test.go(342B)
--------decorator_wrap_func.go(328B)
--------decorator.go(1003B)
--------decorator_wrap_func_test.go(205B)
----07-observer-pattern()
--------observer_test.go(458B)
--------observer.go(2KB)
----19-facade-pattern()
--------facade_test.go(209B)
--------facade.go(964B)
----24-memento-pattern()
--------memento.go(1KB)
--------memento_test.go(680B)
----25-mediator-pattern()
--------mediator.go(2KB)
--------mediator_test.go(398B)
----23-command-pattern()
--------command_test.go(478B)
--------command.go(2KB)
----12-adapter-pattern()
--------adapter_test.go(252B)
--------adapter.go(1KB)
----26-interpreter-pattern()
--------interpreter_test.go(523B)
--------interpreter.go(1KB)
----22-chain-of-responsibility-pattern()
--------chain_test.go(316B)
--------chain.go(1KB)
----15-visitor-pattern()
--------visitor_test.go(484B)
--------visitor.go(1KB)
----09-semaphore-pattern()
--------semaphore_test.go(544B)
--------semaphore.go(1KB)
----13-composite-pattern()
--------composite_test.go(1KB)
--------composite.go(2KB)