- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在《Scala 编程》第 239 页中,第一段说:
Composition and inheritance are two ways to define a new class in terms of another existing class. If what you’re after is primarily code reuse, you should in general prefer composition to inheritance. Only inheritance suffers from the fragile base class problem, in which you can inadvertently break subclasses by changing a superclass.
对我来说还不清楚。任何人都可以展示这种情况的示例,最好带有一些代码吗?
最佳答案
fragile base class problem对于所有支持继承的系统都是通用的。这意味着对父类(super class)型(您继承的类)的更改可能会给您带来意想不到的结果:更改使您打破对基类的假设。请参阅this related SO question获取解释和示例。
相比之下,Scala 将父类的后添加导出到外部独立特征,您可以使用 Mixin Composition 将其添加到子类型中。请参阅this example ,并将“RichIterator
”视为您希望在定义基础 AbsIterator
后对其进行的更改。看看 mixin 如何不改变父类的任何内容,但仍然可以在子类型中轻松重用?
关于OOP 哲学(摘自《Scala 编程》中的组合和继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8716338/
C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup、Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南、规则及最佳实践。旨在帮助
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup、Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南、规则及最佳实践。旨在帮助
import React, { Component } from 'react' import _ from 'lodash' import { PageHeader, Row, Col, FormG
在《Scala 编程》第 239 页中,第一段说: Composition and inheritance are two ways to define a new class in terms of
我对 Node.js 比较陌生,我试图通过编写一个简单的模块来更熟悉它。该模块的目的是获取 ID、抓取网站并返回包含数据的字典数组。 网站上的数据分散在各个页面上,而每个页面都通过 URI 中的不同索
很确定我误解了 git。 我的目标 我在 github 上有一个带有“master”分支的私有(private)存储库。 我还想有一个生产分支,我会将所有更改从 master 推送到该分支。 然后我想
抱歉标题模糊; 我一直在重构我的一些 AngularJS 代码,试图让它更“有 Angular ”,我注意到这种模式经常出现: app.service("someService", function(
模拟 ScheduledExecutorService确实会让我的类(class)测试更容易,但根据 mockito recommendations这似乎是个坏主意,因为模拟类的逻辑可能会以不正确的方
我正在使用 LINQ to XML 生成 XML 文档文档。我希望 XML 文档最小化,即应该省略很少使用的属性。目前,我是这样做的: XElement element = new XElement(
这里是一个使用响应式(Reactive)编程的案例(例如使用 RxJava) 有一个具有一些属性(姓名、姓氏)的 User 对象 - 可观察 一个 Activity 包含 2 个 fragment ,
这不是一个非常精确的问题。我想我理解“ react 提升状态”范式。据我所知,这是两个同级组件访问各自属性的唯一干净方式。 但这样做,我最终得到了一个包含所有内容的巨大类:所有子组件属性的数据信息,以
我是一名优秀的程序员,十分优秀!