为了账号安全,请及时绑定邮箱和手机立即绑定

Go的界面编程模型与OOP相比如何?

Go的界面编程模型与OOP相比如何?

Go
SMILET 2021-05-17 20:42:49
我已经阅读了大部分Go导游教程,但仍不清楚Go的界面编程模型与OOP相比如何?有人可以解释我如何开始“去思考”吗?我很困惑如何定义一个接口,然后基于该接口创建对象?Go会在编译期间为您隐式创建一个具体的实现吗?
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

OOP通常试图解决的问题之一是多态性,即两个不同类具有行为相同的实例的能力。通常在OOP中,这是通过使用继承来完成的。基类定义其他类扩展的最小接口。基类的所有子类都可以用作基类。

Go不是通过继承而是通过接口来执行相同的操作。接口是行为的“描述”。通过实现接口中描述的每种方法,由Go中的各个Type来满足此描述。如果一个类型没有实现所有的接口,那么它会自动满足所描述的接口中的方法,可以由编译器自动到该接口。


查看完整回答
反对 回复 2021-05-31
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

传统(Java)OO是关于类层次结构的。您可以使用类,一些抽象的,一些final的和接口来对您的问题进行建模。然后,您提供实现。

Go使您可以走另一条路:从具体类型开始并实现您的逻辑。如果有用的抽象出现或需要:将其打包到一个接口中,并重构您的代码以使用此接口类型。


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信