Go 模式项目教程
go-patternsDesign patterns in Golang项目地址:https://gitcode.com/gh_mirrors/gop/go-patterns
1. 项目的目录结构及介绍
go-patterns/
├── creational/
│ ├── abstract_factory.go
│ ├── builder.go
│ ├── factory_method.go
│ ├── prototype.go
│ └── singleton.go
├── structural/
│ ├── adapter.go
│ ├── bridge.go
│ ├── composite.go
│ ├── decorator.go
│ ├── facade.go
│ ├── flyweight.go
│ └── proxy.go
├── behavioral/
│ ├── chain_of_responsibility.go
│ ├── command.go
│ ├── interpreter.go
│ ├── iterator.go
│ ├── mediator.go
│ ├── memento.go
│ ├── observer.go
│ ├── state.go
│ ├── strategy.go
│ ├── template_method.go
│ └── visitor.go
├── README.md
└── main.go
creational/
:包含创建型设计模式,如抽象工厂、建造者、工厂方法、原型和单例。structural/
:包含结构型设计模式,如适配器、桥接、组合、装饰器、外观、享元和代理。behavioral/
:包含行为型设计模式,如责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法和访问者。README.md
:项目说明文档。main.go
:项目的主启动文件。
2. 项目的启动文件介绍
main.go
是项目的主启动文件,它包含了项目的入口函数 main()
。该文件主要用于演示和测试各个设计模式的实现。
package main
import (
"fmt"
"github.com/AlexanderGrom/go-patterns/creational/singleton"
)
func main() {
instance := singleton.GetInstance()
fmt.Println(instance)
}
3. 项目的配置文件介绍
该项目没有显式的配置文件,所有的配置和参数都在代码中直接定义和使用。如果需要自定义配置,可以在 main.go
或其他相关文件中进行修改。
例如,可以在 main.go
中添加一些全局配置变量:
package main
import (
"fmt"
"github.com/AlexanderGrom/go-patterns/creational/singleton"
)
var Config = struct {
Debug bool
LogLevel string
}{
Debug: true,
LogLevel: "info",
}
func main() {
instance := singleton.GetInstance()
fmt.Println(instance)
fmt.Println("Debug mode:", Config.Debug)
fmt.Println("Log level:", Config.LogLevel)
}
通过这种方式,可以在不引入外部配置文件的情况下,灵活地调整项目的配置。
go-patternsDesign patterns in Golang项目地址:https://gitcode.com/gh_mirrors/gop/go-patterns