问题标签 [abstraction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
547 浏览

javascript - 有人知道用于常见任务的 JavaScript 库的抽象层吗?

我知道,我知道,库之上的另一层,但我认为在移植某些功能时可能会有一些好处。我想我会问一下,看看是否有人发现了与此相关的任何东西。从本质上讲,它是一堆 getter 和 setter,任何一个主要的库都可以介于两者之间。有没有人见过这样的事情?

0 投票
1 回答
235 浏览

.net - 抽象枚举选择框

我正在尝试制作一个可以采用枚举类型的函数,向用户显示所有可能的选择,让他们选择一个然后将其传回。泛型不允许您限制枚举。我的代码可以来回转换,但我希望它接受并返回相同的枚举类型。

这段代码有效,但不如我想的那么好:

Public Function getEnumSelection(ByVal owner As Windows.Forms.IWin32Window, ByVal sampleValue As [Enum], ByVal subtitle As String) As String

在它运行之后,我可以 [Enum].parse 在调用者上直接解析到枚举类型,因为我可以在那里访问它,但我想消除这个手动步骤。

我希望能够返回相同的枚举类型,或者至少将解析返回到我收到的值并将其转换为该函数,但它似乎不允许这一行。暗淡结果 As Object = [Enum].Parse(GetType(sampleValue), mInput.ListBox1.SelectedItem.ToString, True)

它说 sampleValue 不是一种类型。那么...如何获取要解析的 sampleValue 类型?

或者是否有另一种方法可以轻松且通用地允许用户选择枚举值,而无需为每个枚举手动编码映射函数?

0 投票
4 回答
2779 浏览

domain-driven-design - 所有“批量”操作在 DDD 中属于哪里?

在 DDD 中,关键概念之一是存储库,它允许您检索实体(或聚合根),然后在更新后将它们保存回来。

假设我们需要对实体执行一些“批量”操作,并且实体的数量使得将它们检索到内存中是绝对不可能的。ie操作只能在数据库中进行。

这种“批量”操作的地方在哪里?它应该是存储库上的方法吗?它不会通过数据库特定操作“泄漏”存储库抽象吗?它不会将业务操作从实体转移到存储库吗?

0 投票
24 回答
9953 浏览

file - 为什么我应该使用人类可读的文件格式?

为什么我应该使用人类可读的文件格式而不是二进制格式?有没有这种情况不是这样的?

编辑:我在最初发布问题时确实有这个解释,但现在它不那么相关了:

在回答这个问题时,我想向提问者推荐一个标准的 SO 答案,说明为什么使用人类可读的文件格式是一个好主意。然后我找了一个,没找到。所以这里的问题

0 投票
1 回答
149 浏览

html - 谁能给我指出一篇关于“抽象 HTML”的好文章?

我目前正在开发具有大量重复 HTML 代码的遗留电子商务系统前端。

我试图找到一种方法来抽象出复杂性,就像将相似类之间的相似性移动到共享抽象基类时一样。

IE“取出变化并抽象化”

我以前使用过 Tiles 等 Java 框架来执行此操作,但目前我使用的是 Webby。

此外,在之前抽象 HTML 时,我是从头开始编写代码并使用 MVC 框架,所以这让事情变得更容易一些(不必将任何东西与 diff 进行比较)。

有人会知道我所描述的内容的另一个术语,或者可能是一篇关于为此目的抽象现有 HTML 代码的好文章吗?

0 投票
5 回答
4952 浏览

language-agnostic - 通过信息隐藏进行有效封装的绝妙例子?

抽象封装是互补的概念:抽象关注对象的可观察行为……封装关注引起这种行为的实现……封装通常通过信息隐藏来实现,即隐藏所有信息的过程对象的秘密对其本质特征没有贡献。” - Grady Booch面向对象分析和设计

你能告诉我一些通过信息隐藏封装的好处的令人信服的例子吗?

0 投票
23 回答
13092 浏览

java - 为什么接口优先于抽象类?

我最近参加了一次采访,他们问我一个问题“为什么接口比抽象类更受欢迎?”

我尝试给出一些答案,例如:

  • 我们只能得到一个扩展功能
  • 它们是 100% 抽象的
  • 实现不是硬编码的

他们要求我采用您使用的任何 JDBC api。“为什么它们是接口?”。

我可以得到更好的答案吗?

0 投票
6 回答
1198 浏览

generics - 硬编码与通用编码:在哪里划清界限?

我不完全确定如何措辞,但我会尝试。

假设您在程序的某些部分中有一些设置,您 80% 确信您将永远不必再次修改。你怎么知道在可变代码上画线?您知道将设置一直保存到用户定义的 XML 文件是多余的。但是,您也知道,稍后可能需要更改这些设置的可能性为 20%,因此在橡胶与道路相遇的地方对其进行编码也不是最佳选择。

我想我想问的是,你应该让你的程序容易改变抽象树多远?

许多示例之一是手动为网站编写 HTML 代码,而不是让程序自动生成它。直接编写 HTML 代码不会花费太多时间。编写程序以自动生成 HTML 代码需要更长的时间。

0 投票
2 回答
354 浏览

c++ - 如何在 C++ 中编写可内联的相互抽象?

先举例:

在此示例中,我可以将 MyHashingSolution 传递给 State 类,因此 State 可以访问 HashingSolution 的方法,但 HashingSolution 不能调用 GetState。有可能解决这个问题吗?

这是最深的循环。这里的虚函数使性能下降了 25% 以上。内联对我来说至关重要。

0 投票
2 回答
11664 浏览

.net - System.Web.Abstractions:它有什么用?

... 绝对没有?

它分别为ASP.NET WebFormsASP.NET MVC解决了哪些难题?

你能以某种方式创建一个使用 System.Web.Abstractions 的 ASP.NET * 基础应用程序,以便它可以在两种 ASP.NET-web 应用程序中使用吗?

在那种情况下,他们如何将 System.Web.Abstractions 中的类重新安装到 ASP.NET WebForms 中?

您不能从命名空间中新建对象,所以它不能用于模拟,不是吗?

更新:抱歉不清楚我知道测试 HttpContext 和其他构建它的 ASP.NET 对象的问题。但无论如何,感谢您的良好解释。