Golang的面向对象思想
interface接口
特点
- interface 是⽅法声明的集合
- 任何类型的对象实现了在interface 接⼝中声明的全部⽅法,则表明该类型实现了该接⼝
- interface 可以作为⼀种数据类型,实现了该接⼝的任何对象都可以给对应的接⼝类型变量赋值
注意
- interface 可以被任意对象实现,⼀个类型/对象也可以实现多个interface
- ⽅法不能重载,如 eat(), eat(s string) 不能同时存在
interface⼀定要和多态的特性结合
-
多态的三要素
有⼀个⽗类的接⼝(抽象) 有⼦类重写⽗类的全部接⼝⽅法 ⽗类(接⼝类型) 指针/引⽤ 指向⼦类对象
-
⼀旦有interface出现 ,⼀定要针对interface去写业务
-
多态具有架构思想和调⽤未来代码的意义
面向对象的开闭原则
平铺式的模块设计
类的功能越来越多,⽽变得越来越庞⼤和负责,每次新增功能,风险都会很大
开闭原则的设计
给⼀个类添加⼀个新的功能,不需要修改该类,⽽是通过额外的添加代码来实现,保证了之前原有系统的安全性
面向对象的依赖倒转原则
耦合度极高的设计方式
程序中没有接口:程序的规模越大,开发的难度和复杂度越大,越容易出错,越不稳定
依赖倒转原则的设计
-
抽象层
先设计抽象层接⼝,实现⼀个⼀个的interface 设计难度较⼤,不要轻易修改
-
实现层
⾯向抽象层 是实现具体的类,将接⼝全部实现
-
业务逻辑层
⾯向抽象层,去编织业务逻辑
接口的意义
- 多态的思想
- 调用未来