- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为我学习的一部分,我认为我发现的抽象定义的最佳答案(有意义)来自 stackoverflow:
除此之外,
作为 2006 年秋季伯克利在线类(class) cs61B 的一部分,我了解了与上述定义接近的 ADT 的类似以下定义,但添加了一个额外的词“不变”。我应该将这个词视为上述定义的必然结果吗?或者这个词是定义的一部分吗?
_Abstract_Data_Type_ (ADT) 是一个具有定义良好接口(interface)的类,但它的实现细节对其他类来说是完全隐藏的。那样,你可以改变一个类的实现而不危及依赖它的程序。 Date 类是一个 ADT。
ADT 允许您执行不变量。
不变 是关于数据结构的事实,无论外部类调用什么方法,它始终为真(假设代码没有错误)。例如,Date ADT 强制执行 Date 对象始终表示有效日期的不变性。通过仅允许通过方法调用访问某些字段来强制执行不变量。
最佳答案
我最喜欢的抽象定义之一是罗伯特·C·马丁 (Robert C. Martin) 的书 Agile Principles, Patterns, and Practices :
Abstraction is the elimination of the irrelevant and the amplification of the essential.
基于该定义,抽象可以在许多不同的层次上采用多种形式:
在Object-Oriented Software Construction , Bertrand Meyer 将类描述为抽象数据类型。本书的想法是抽象数据类型的描述包括前置条件和后置条件。在 Eiffel(书中使用的语言)中,这些称为断言,但我们也将它们称为不变量。
Meyer 对面向对象设计的看法包括不变量。在详细的(类/对象/函数)级别上,我同意将不变量视为一种描述抽象的方式是有意义的。
另一方面,如果您的抽象是对高级架构的描述,那些类型的不变量就没有意义。尽管如此,即使在高层次上,定义前置条件和后置条件通常也是有值(value)的(例如“系统 A 必须做出响应才能使系统 B 正常工作”),因此考虑不变量确实有意义与抽象的关系。
关于architecture - 'invariant' 属性是抽象定义的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22186528/
目前我能想到三种情况: 不包含任何资源的程序集 在其资源文件中仅包含图像(即 ToolBoxBitmaps)的控制库 仅包含用于抛出异常的文本的库(无论如何我们都不希望用户看到这些,对吗?;-)) 我
我正在学习一门强调使用不变量的中级编程类(class)。我以前从未使用过它们,它们似乎需要更多的时间来创建。软件工程行业是否强调使用不变量? 最佳答案 取决于你问谁 - 我使用不变量只是因为它让生活更
作为我学习的一部分,我认为我发现的抽象定义的最佳答案(有意义)来自 stackoverflow: What is abstraction? 除此之外, 作为 2006 年秋季伯克利在线类(class)
我正在试验 Code Contract,但遇到了一个问题。我有课: public class SpecialPoint { public int X { get; set; } pub
有人可以给我举个例子吗 invmap :: (a -> b) -> (b -> a) -> f a -> f b Invariant 有什么好处? 最佳答案 大多数情况下,人们不使用Invarian
我发现我的机器和构建服务器上的测试结果不同。我设法找到了不同的单行。这是一个字符串比较。这两个字符串的第一个字符不同。 下面的测试在我的本地机器上通过了,但在构建机器上失败了。 [TestClass]
尽管 _foo 不可能为 null,但下面的简单代码将由代码契约的静态检查器产生“不变的未经证实”的警告。该警告针对 UncalledMethod 中的 return 语句。 public class
我有一个像这样设置的 React 项目: 这是一个简单的应用程序。 Dashboard 有一个 UserListContainer,其中包含一个 UserList,其中列出了四个用户及其 ID 和姓名
我正在使用 React JS 构建一个应用程序,到目前为止我很喜欢它。但是,我遇到了一个错误,而且我很难确定我做错了什么。这是我的错误: 未捕获错误:不变违规:ImageList.render():必
我不明白这条消息想告诉我什么: CodeContracts: invariant unproven: _uiRoot != null && _uiRoot.Children != null && _u
我已经创建了 VenueList 组件。我想在 native 应用程序中使用 FlatList 组件显示列表。我收到错误消息:Invariant Violation 试图让帧超出范围索引(参见屏幕截图
尝试添加 onClick 时出现以下错误属性(property)给表格内的元素。这是我的错误: Invariant Violation: findComponentRoot(...) ... Unab
最初我的 mongod 进程运行良好。我发现我的虚拟机上有空间紧缩,所以删除了 2 个较旧的 oplog 文件以释放空间。然后接下来我启动 mongod 并开始出现错误。然后我尝试在本地数据库中修复我
我有一个Angular 11项目,试图集成SpreadJS Designer,但在ngcc步骤Compiling @grapecity/spread-sheets-designer-angular :
我正在寻找一种有条理的方法来追踪哪个组件在不熟悉的代码库中导致了“未捕获的不变违规”错误。特别是在运行不输出堆栈跟踪的业力测试套件时。 我最幸运的是将 console.log(JSON.stringi
设置状态导致第二次渲染后 react 测试失败 到目前为止,JSDOM 和 Mocha 的测试进展顺利。到目前为止,还没有必要测试任何改变其状态的组件。我发现我的第一个问题是测试更改其状态的组件。 错
这是一个典型的 react 问题,但我有点不知道如何处理它。我只想动态渲染我的表格线,但我收到错误:”“未捕获错误:不变违规:processUpdates():无法找到元素的子元素 2。这可能意味着
我知道错误来自嵌套的东西和嵌套_.map功能,但我不知道如何做到这一点。 渲染函数的一部分如下: 我想做的是: 检查是this.props.currencylist存在 然后显示下拉菜单 与 来自th
由于缺乏对 Commonjs 模块的支持,在对 React_rails gem 感到沮丧之后,我正在测试 react_webpack_rails来自 netguru 的 gem 。但从那时起我就遇到了
在 JEST 中为 React 文件编写测试用例时,我收到此错误。以下是我的示例代码: search_basr_test.js jest.autoMockOff(); global.React = r
我是一名优秀的程序员,十分优秀!