问题标签 [decouple]

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 投票
9 回答
3030 浏览

linq-to-sql - 实体类从 LINQ 到 SQL 提供程序分离,以实现存储库模式。如何?

我查看了存储库模式,我发现了一些我过去使用的想法,这些想法让我感觉很好。

但是现在我想编写一个使用这种模式的应用程序,但我希望实体类与存储库提供者分离。

我会创建几个程序集:

  1. 一个“接口”程序集,它将承载包括 IRepository 接口在内的通用接口
  2. 一个“实体”程序集,它将承载产品、用户、订单等实体类。该程序集将由“接口”程序集引用,因为某些方法将返回此类类型或它们的数组。它也将被主应用程序程序集(例如 Web 应用程序)引用
  3. 一个或多个存储库提供程序程序集/程序集。每个都将包括(至少)一个实现 IRepository 接口的类,并且它将与某个数据存储一起使用。数据存储可以包括 SQL Server、Oracle 服务器、MySQL、XML 文件、Web/WCF 服务等。

在我发现生成的类和 CustomDataContext 类之间存在深度依赖之前,研究 LINQ to SQL 看起来在实现所有方面所花费的时间方面看起来非常有成效。

在这种情况下如何使用 LINQ to SQL?

0 投票
1 回答
611 浏览

silverlight - Silverlight 3 Ria 服务参考

我有一个 Silverlight 项目,由于应用程序的大小和复杂性,功能在多个 Silverlight 库中被隔离。我无法确定解耦从网站项目生成的 RIA 域服务的最佳方法是什么。我需要能够访问来自其他库的数据,因为它们将根据需要动态加载到主 Silverlight 应用程序中。

0 投票
2 回答
532 浏览

linq - 使用 Linq 表达式将客户端与 DAL(即服务器端)分离

我在 Linq 上的许多帖子中找不到答案,所以我在这里。我们有一个客户端-服务器应用程序,其中客户端完全不知道服务器端的实际 DAL,这是偶然使用 NHibernate 实现的。这意味着,客户端程序集中没有对 NHibernate 的引用,也没有数据库抽象。客户端严格按照基于 CSLA 业务对象的实体来表述。

我想让客户端过滤显示的实体。我的想法是让客户端构造一个Linq表达式,将其传输到服务器端,使用Linq到NHibernate获取与表达式匹配的数据并将其返回给客户端。

我已将 Linq 下载并编译到 NHibernate,但不幸的是,我找不到将 Linq 表达式(又名客户端)与相应的 NHibernateContext 实例(又名服务器端)分离的示例。所有的例子似乎都像

即一个语句中的上下文(db.Customers)和表达式(where ...)。

是否可以将它们解耦?谢谢。

0 投票
2 回答
125 浏览

oop - 在 OOP 中保持独立概念分离的最常用哲学是什么?

或者根据自己的经验,

你最喜欢的把戏是什么?

0 投票
3 回答
4924 浏览

c++ - C++回调——如何解耦回调类型

例如,在下面的伪代码中,B 类需要通过 B::m_cb 成员调用 A::Action()。

目的是,如何制作一个通用的、非模板的回调类,所以“B”不必是模板,“回调”可以包含任何类型的函数签名。

我以前曾经使用过这样的代码,但现在我找不到那个实现。我只记得:
- “CallBack”本身不是模板,但它包含成员模板
- 辅助函数模板 make_callback 将实例化 CallBack 对象

谁能指点一下?

这是我从同一个网站获得的示例代码。我尝试对其进行了一些改进,使其可以容忍任意回调函数的返回类型。但它仍然不能处理任意数量的参数,如第 18 行。另外,T 是指向成员函数的指针,它应该依赖于 C。我不知道如何强制执行。

0 投票
1 回答
170 浏览

c++ - 在这种情况下如何解耦

例如,下面的代码片段做了这些事情:首先从数据库中读取数据,然后转换数据,最后将结果写回数据库。进一步来说:

  1. 从数据库中读取数据并将它们逐条记录存储到A类中。
  2. 逐条转换存储在 A 类中的数据,B 类完成这项工作。
  3. 将所有结果存储在 QVariantList 中并批量写入 ihe 数据库。

问题是 A 类、B 类和 ReadTransWrite 类之间的紧密耦合如果我想在 A 类中添加一个成员变量 A4,则需要更改 3 个类。查看以“//-->”开头的评论

如何解耦?有什么模式可以推荐吗?有什么建议吗?

片段:

0 投票
2 回答
1475 浏览

viewmodel - 如何使用 MVVMCross 构建视图模型

我正在迈出 MvvmCross 框架的第一步,我正在尝试确定项目和类结构方面的最佳方法。我现在最关心的是决定如何组织我的视图模型以便在它们之间共享数据,同时遵循 mvvm 指导。

我有关于视图和各自视图模型(主要和配置)的简单示例。主视图有一些控件绑定到视图模型中的属性。配置视图使用户能够更改文本颜色、列表中的项目数量等......当用户更改配置时,这应该反映在主视图中。

我的第一种方法是创建单独的视图和视图模型。但是如何通知主视图配置已更改?我在Github/Slodge下看到了 Sphero 项目,我意识到视图模型可以直接引用其他视图。这样,每次配置更改时通知主视图相当容易。但这不是 mvvm 推荐的解耦视图模型的偏差吗?

我能否就处理这种类型的类结构的最佳方法获得一些见解?

0 投票
3 回答
1520 浏览

java - java隐藏两层之间的实现类细节

我正在构建一个具有业务逻辑层的应用程序,该业务逻辑层需要访问所有与数据库相关的东西的 DAO 层。我的要求是 DAOImpl 类可以不断变化,因此我正在寻找在我的业务逻辑类中获取 DAOImpl 类句柄的方法,而无需知道实际的 DAOImpl 类。有什么办法可以在 Java 中实现这一点?

0 投票
1 回答
97 浏览

django - 如何将样式与 django 形式分离?

我们的前端设计师(编程经验很弱)attrs在 python 代码中使用等来控制表单的外观有问题。

有没有推荐的方法来分离这些问题?

我遇到了django-crispy-forms但不确定这是否是实现目标的正确工具。

0 投票
2 回答
4482 浏览

javascript - BEM and "active" classes / Decoupling HTML and JS

I've started using BEM methodology to decouple my HTML and CSS ... and it works pretty well most of the time. Even if its only your personal opinion, i would still like to know how others deal with this:

Let's assume we need to build a simple navigation. The HTML looks similar to

I'm not sure if i need the ".nav_item" and ".nav_link" or if it's better pratice to use this instead

But my real issue is how to deal with "active" classes (not just for navigations, but in general). Is it better to use specific "active" classes like ".nav_item--active", so you can just use a single class inside your CSS file or if using more general class names like ".is-active" works better? But then you need to specify your classes inside your CSS file like ".nav_item.is-active" or (which looks even worse to me) ".nav__list > .is-active".

Every method has its downsides. To me the second way looks wrong if using BEM, but if you are going for the first way you run into "troubles" with your JS, because you need to "hard-code" the specific class name into your JS

That way your JS relies too much on your HTML structure (or doesn't this matter too much?), which might change... And this leads to the second question. I heard that it's good to decouple not only your HTML and CSS but also your HTML and JS. So you could for example use those ".js-" classes to add click events and all that kind of stuff to elements instead of using your "styling" classes to trigger those kind of events. So instead of using

you would have

I think this in combination with HTML5 data-attributes works for pretty much for anything, but i'm asking myself what happens to navigation or accordions or stuff like that. Is it better for maintainability to use those ".js-" classes as well (for every item)

or should i use $(".nav__item")... in my JS in this case? But that way you don't really decouple your HTML and JS (at least as far i understood this topic). It's not just about navigations, but about all those kind of javascript interactions, like accordions, sliders and so on.

I'll hope you guys can share some best practices for those questions and help me out.

Thanks