浅谈golang语言中的OOP

浅谈golang语言中的OOP

理解go语言中面向对象的思想,就是理解struct和interface的过程。简单来说go语言中的对象就是struct,面向对象的思想就是一种组合思想,以struct为基本的单元,支持struct之间的组合和嵌入,并可以为struct绑定方法。那么如何完成对对象方法的调用呢?直接由struct的实例来调用他所属的方法,这样显然是一种调用方式,但是这样的弊端显而易见,当有多个对象有相同的方法时,我们无法穷举出所有对象(go的语法中可没有继承的概念哦),因为有些对象在当时的上下文中并不存在(其实就是如何表征对象的问题),所有我们需要对方法进行分类。这里就抽象出interface的概念,interface是由单个和多个方法组成,任何struct实现了某个interface中的所有方法,即可认为该struct加入了该interface中(注意:这里所说的加入指的是一种关系。比如:你做为struct,这里有2个协会篮球协会和排球协会做为2个interface,篮球协会有个方法,要求会打篮球,排球协会有个方法,要求会打排球,当你既会打篮球,也会打排球,那你就加入了这2个协会,你和2个协会之间就形成了一种关系。)。同时interface也能表征struct,通过一种反射机制,从interface又能获取原本的struct。interface就像是struct脸上的一种面具,struct可以有多个面具戴在脸上,揭开任一面具都能知道你是谁。一种面具代表一类,也就是通过一种面具可以局部表征拥有该面具的struct。

你可能感兴趣的:(golang,go,golang,OOP)