在Go中嵌入而不是继承

您对此设计决定有何看法?它有什么优点,有什么缺点?



炎炎设计
浏览 241回答 3
3回答

元芳怎么了

在注释中,您想知道嵌入的想法是否足以“完全替换继承”。我想说的是,这个问题的答案是“是”。几年前,我非常简单地使用了一个名为Snit的Tcl OO系统,该系统使用组合和委派来排除继承。Snit与Go的方法仍然有很大的不同,但是在这一方面,他们有一些共同的哲学基础。这是一种将功能和职责结合在一起的机制,而不是类的层次结构。正如其他人所说,这实际上与语言设计人员要支持哪种编程实践有关。所有这些选择都各有利弊。我认为“最佳做法”不是必须在此处应用的短语。我们可能最终会看到有人为Go开发继承层。(对于熟悉Tcl的所有读者,我都觉得Snit比该语言的“感觉”更接近匹配。Tcl完全[incr Tcl]是关于委派的,至少是我的思维方式。)

海绵宝宝撒

该4纲的关键原则是‘宁可组成继承’; 去让你跟随它;-)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go