问题标签 [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.
javascript - 有人知道用于常见任务的 JavaScript 库的抽象层吗?
我知道,我知道,库之上的另一层,但我认为在移植某些功能时可能会有一些好处。我想我会问一下,看看是否有人发现了与此相关的任何东西。从本质上讲,它是一堆 getter 和 setter,任何一个主要的库都可以介于两者之间。有没有人见过这样的事情?
.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 类型?
或者是否有另一种方法可以轻松且通用地允许用户选择枚举值,而无需为每个枚举手动编码映射函数?
domain-driven-design - 所有“批量”操作在 DDD 中属于哪里?
在 DDD 中,关键概念之一是存储库,它允许您检索实体(或聚合根),然后在更新后将它们保存回来。
假设我们需要对实体执行一些“批量”操作,并且实体的数量使得将它们检索到内存中是绝对不可能的。ie操作只能在数据库中进行。
这种“批量”操作的地方在哪里?它应该是存储库上的方法吗?它不会通过数据库特定操作“泄漏”存储库抽象吗?它不会将业务操作从实体转移到存储库吗?
file - 为什么我应该使用人类可读的文件格式?
为什么我应该使用人类可读的文件格式而不是二进制格式?有没有这种情况不是这样的?
编辑:我在最初发布问题时确实有这个解释,但现在它不那么相关了:
在回答这个问题时,我想向提问者推荐一个标准的 SO 答案,说明为什么使用人类可读的文件格式是一个好主意。然后我找了一个,没找到。所以这里的问题
html - 谁能给我指出一篇关于“抽象 HTML”的好文章?
我目前正在开发具有大量重复 HTML 代码的遗留电子商务系统前端。
我试图找到一种方法来抽象出复杂性,就像将相似类之间的相似性移动到共享抽象基类时一样。
IE“取出变化并抽象化”
我以前使用过 Tiles 等 Java 框架来执行此操作,但目前我使用的是 Webby。
此外,在之前抽象 HTML 时,我是从头开始编写代码并使用 MVC 框架,所以这让事情变得更容易一些(不必将任何东西与 diff 进行比较)。
有人会知道我所描述的内容的另一个术语,或者可能是一篇关于为此目的抽象现有 HTML 代码的好文章吗?
language-agnostic - 通过信息隐藏进行有效封装的绝妙例子?
”抽象和封装是互补的概念:抽象关注对象的可观察行为……封装关注引起这种行为的实现……封装通常通过信息隐藏来实现,即隐藏所有信息的过程对象的秘密对其本质特征没有贡献。” - Grady Booch面向对象分析和设计
你能告诉我一些通过信息隐藏封装的好处的令人信服的例子吗?
java - 为什么接口优先于抽象类?
我最近参加了一次采访,他们问我一个问题“为什么接口比抽象类更受欢迎?”
我尝试给出一些答案,例如:
- 我们只能得到一个扩展功能
- 它们是 100% 抽象的
- 实现不是硬编码的
他们要求我采用您使用的任何 JDBC api。“为什么它们是接口?”。
我可以得到更好的答案吗?
generics - 硬编码与通用编码:在哪里划清界限?
我不完全确定如何措辞,但我会尝试。
假设您在程序的某些部分中有一些设置,您 80% 确信您将永远不必再次修改。你怎么知道在可变代码上画线?您知道将设置一直保存到用户定义的 XML 文件是多余的。但是,您也知道,稍后可能需要更改这些设置的可能性为 20%,因此在橡胶与道路相遇的地方对其进行编码也不是最佳选择。
我想我想问的是,你应该让你的程序容易改变抽象树多远?
许多示例之一是手动为网站编写 HTML 代码,而不是让程序自动生成它。直接编写 HTML 代码不会花费太多时间。编写程序以自动生成 HTML 代码需要更长的时间。
c++ - 如何在 C++ 中编写可内联的相互抽象?
先举例:
在此示例中,我可以将 MyHashingSolution 传递给 State 类,因此 State 可以访问 HashingSolution 的方法,但 HashingSolution 不能调用 GetState。有可能解决这个问题吗?
这是最深的循环。这里的虚函数使性能下降了 25% 以上。内联对我来说至关重要。
.net - System.Web.Abstractions:它有什么用?
... 绝对没有?
它分别为ASP.NET WebForms和ASP.NET MVC解决了哪些难题?
你能以某种方式创建一个使用 System.Web.Abstractions 的 ASP.NET * 基础应用程序,以便它可以在两种 ASP.NET-web 应用程序中使用吗?
在那种情况下,他们如何将 System.Web.Abstractions 中的类重新安装到 ASP.NET WebForms 中?
您不能从命名空间中新建对象,所以它不能用于模拟,不是吗?
更新:抱歉不清楚我知道测试 HttpContext 和其他构建它的 ASP.NET 对象的问题。但无论如何,感谢您的良好解释。