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

在Go中嵌入而不是继承

在Go中嵌入而不是继承

Go
炎炎设计 2021-04-06 17:15:11
您对此设计决定有何看法?它有什么优点,有什么缺点?
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

在注释中,您想知道嵌入的想法是否足以“完全替换继承”。我想说的是,这个问题的答案是“是”。几年前,我非常简单地使用了一个名为Snit的Tcl OO系统,该系统使用组合和委派来排除继承。Snit与Go的方法仍然有很大的不同,但是在这一方面,他们有一些共同的哲学基础。这是一种将功能和职责结合在一起的机制,而不是类的层次结构。

正如其他人所说,这实际上与语言设计人员要支持哪种编程实践有关。所有这些选择都各有利弊。我认为“最佳做法”不是必须在此处应用的短语。我们可能最终会看到有人为Go开发继承层。

(对于熟悉Tcl的所有读者,我都觉得Snit比该语言的“感觉”更接近匹配。Tcl完全[incr Tcl]是关于委派的,至少是我的思维方式。)


查看完整回答
反对 回复 2021-04-26
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

该4纲的关键原则是‘宁可组成继承’; 去你跟随它;-)。


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

添加回答

举报

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