我已经阅读了大部分Go导游教程,但仍不清楚Go的界面编程模型与OOP相比如何?有人可以解释我如何开始“去思考”吗?我很困惑如何定义一个接口,然后基于该接口创建对象?Go会在编译期间为您隐式创建一个具体的实现吗?
3 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
OOP通常试图解决的问题之一是多态性,即两个不同类具有行为相同的实例的能力。通常在OOP中,这是通过使用继承来完成的。基类定义其他类扩展的最小接口。基类的所有子类都可以用作基类。
Go不是通过继承而是通过接口来执行相同的操作。接口是行为的“描述”。通过实现接口中描述的每种方法,由Go中的各个Type来满足此描述。如果一个类型没有实现所有的接口,那么它会自动满足所描述的接口中的方法,可以投由编译器自动到该接口。
ABOUTYOU
TA贡献1812条经验 获得超5个赞
传统(Java)OO是关于类层次结构的。您可以使用类,一些抽象的,一些final的和接口来对您的问题进行建模。然后,您提供实现。
Go使您可以走另一条路:从具体类型开始并实现您的逻辑。如果有用的抽象出现或需要:将其打包到一个接口中,并重构您的代码以使用此接口类型。
- 3 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消