Skip to content

面向对象三大特征与五大原则

三大特征

  • 封装:对外暴露公开的接口,增强安全,简化编程
    • 首字母大小写方式代表共有私有权限
  • 继承:子类继承父类,自动拥有父类的属性和方法
    • 使用内嵌的方式,对结构体struct进行组合
  • 多态:通过接口来实现,多态存在的三个必要条件【继承、重写、父类引用指向子类对象】
    • 使用interface来实现
1
2
3
4
5
6
7
8
9
package oop
type UserInfo struct {
    Name      string
    Age       int
    Height    float32
    Eduschool string
    Hobby     []string
    MoreInfo  map[string]interface{}
}
package main
import "fmt"
func main() {
    ElasticNotes := UserInfo{
        Name:      "",
        Age:       0,
        Height:    123,
        Eduschool: "加州理工学院",
        Hobby:     []string{"music", "basketball"},
        MoreInfo:  nil,
    }
    fmt.Print(ElasticNotes)
}

五大原则

  1. 单一功能原则
    • 对于对象有单一功能的概念,比如某种行为 只能是单一行为且不能并行。
  2. 开闭原则
    • 对于扩展要开放,对于修改要关闭。
  3. 里氏替换
    • 子类对象可以替换父类对象,而程序逻辑不变,在Go语言中就是要面向接口开发,接口是很好替换的。
  4. 接口隔离原则
    • 保证接口的最小化,根据业务划分接口,不能滥用。
  5. 依赖反转原则
    • 依赖具体的实现,依赖接口来进行开发。