goland中开闭原则代码的示例
时间: 2024-11-24 10:22:41 浏览: 19
goland实现的小游戏项目代码资料.zip
在Golang中,开闭原则(Open-Closed Principle,OCP)是一个软件设计原则,它建议“对扩展开放,对修改关闭”。这意味着你应该能够容易地添加新的功能,而不需要修改现有的代码结构。下面是一个简单的示例:
假设我们有一个基础的形状接口`Shape`,以及两个实现了该接口的具体类型`Rectangle`和`Circle`:
```go
// Shape 接口
type Shape interface {
Area() float64
}
// Rectangle 实现 Shape 接口
type Rectangle struct {
width, height float64
}
func (r Rectangle) Area() float64 {
return r.width * r.height
}
// Circle 实现 Shape 接口
type Circle struct {
radius float64
}
func (c Circle) Area() float64 {
return math.Pi * c.radius * c.radius
}
```
现在,如果我们要添加一个新的形状如`Triangle`,我们可以很容易地创建一个新的类型并遵循相同的接口规则:
```go
// Triangle 类型
type Triangle struct {
base, height float64
}
func (t Triangle) Area() float64 {
return 0.5 * t.base * t.height // 假设这里有一个计算三角形面积的公式
}
```
在这个例子中,我们没有修改`Shape`接口或已有的`Rectangle`和`Circle`,而是新增了一个`Triangle`类型的实现,这体现了开闭原则。
阅读全文