问题标签 [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 投票
1 回答
1421 浏览

entity-framework - 如何将 aspnet.identity.entityframework 分离到它自己的程序集

我正在尝试将 appicationDBContext 从 asp.net MVC5 Web 应用程序项目中移出到它自己的程序集中。我尝试为数据访问层创建一个类库并使用 nuget 安装 aspnet.identity 程序集。

我不能让它工作。我尝试了几个不同的示例,但不确定如何做到这一点的最佳方法。

我在 codeplex 中创建了一个基本示例: https ://testdal.codeplex.com/

这是一个空的 mvc5 网站,引用了类库 DAL。在 DAL 中是来自默认示例网站的模型以及参考和一些基本测试代码,用于尝试注册用户。

我收到以下错误:

任何人都可以帮我找到一种简单的方法来将模型与 UI 项目分开吗?

谢谢

保罗

0 投票
1 回答
172 浏览

c# - 解耦组件传递结果 c#

我有一个程序从客户端接收文件并对文件进行一些操作并将它们保存在磁盘上或不保存它们。为了解耦工作,我创建了一个名为IFileEditor. 每个在文件上做某事的组件都应该实现这个接口:

该接口的主要方法是EditFile,它接收文件内容并进行操作,并可能最后将结果保存到磁盘上。我编写的示例类是从实现此接口的图像创建缩略图:

我可能有很多组件,例如 ThumbnailCreator,例如 zip 内容或其他任何对内容进行操作的组件。

在主程序中,我通过反射加载每个组件。加载它们的实现并不重要,只知道在主程序的.exe旁边复制组件的ddl,如果dll实现IFileEditor,我将其添加到列表中。

主要问题是,主应用程序只是接收文件并将它们传递给组件,组件完成工作。如果我想将一个组件的结果传递给另一个组件,我应该怎么做?

请记住,组件彼此不知道,主程序不应干扰传递结果。

我搜索了,我认为责任链设计模式将解决我的问题。不知道这样对吗?如果正确,如何实施?例如,一个组件创建缩略图并将结果传递给压缩缩略图。

我是这样写这部分的,每个开发人员都可以创建一个组件,并且主程序可以是可扩展的。

感谢您阅读这篇大文章。;)

0 投票
1 回答
553 浏览

dll - 在我的 C# 解决方案中,解耦架构中的接口存储在哪里?

我知道这个问题之前似乎已经回答过了,但我觉得答案因情况而异,所以在阅读了几篇文章后,我不确定哪种情况最适合我的架构。

我有一个组件库,它具有数据模型和基本功能,任何实现此组件的应用程序都应该使用这些功能。

我有这个组件的边界,它有一个接口 IReader 来加载和处理磁盘中的文件,以及 IDataMapper 来提供数据库访问和 CRUD 操作。用于特定功能的一些其他接口,例如用于比较对象的 IObjectComparison、来自 XML 序列化的 IXMLSerialization。

我不确定在哪里存储这些接口的定义。

选项包括:

1)- 在核心库中,然后当我编写实现时,我将不得不在这个核心组件中包含实现库,并且我希望保持与实现的分离。

2)- 在一个单独的库项目(程序集)中。那里的所有接口都包含在核心组件中并包含在实现库中。

3) - 在实现库中,核心组件必须包含实现库。

唯一看起来合理解耦的情况是,如果我将所有接口放在一个单独的程序集库中,其中包含核心组件和我可能需要的任何实现。

你们认为最佳选择的优点/缺点是什么?我想要实现的只是一个解耦的架构。

所以当我这样做的时候

构造函数:

并且不必在核心组件中包含WindowsReaderSQLServerMapper

干杯。

0 投票
2 回答
60 浏览

java - 如何在不同情况下使用不同的子类?

我有一个这样的困境:

我有父类MediaPlayer,然后一些子类从它扩展,假设它们是MediaPlayerSub1 MediaPlayerSub2 MediaPlayerSub3,它们都扩展了一些不同的方法。

在我的客户中,我想在不同的情况下使用不同的子类,所以我面临着困难:我在使用时MediaPlayer总是需要判断它是哪个子类,例如:

我是否有更好的选择来重构代码以减少耦合?

0 投票
0 回答
65 浏览

wcf - 将 WCF 服务绑定到不引用 WCF 的接口

我有 2 个解决方案,解决方案 A 和解决方案 B。

解决方案 A 有业务规则,不应该知道外部技术,没有 db,没有 wcf 等......

另一方面,解决方案 B 几乎没有在公司内共享并通过 wcf 服务公开的业务规则。

我的意图是使用解决方案 A 中的类在解决方案 B 中定义的合同,这样解决方案 A 不知道 WCF。但我不知道如何绑定它,到目前为止,我尝试在解决方案 A 中创建一个新项目,该项目包含对解决方案 B 中的合同和 wcf 服务的引用,然后使用某种 IOC 容器绑定它们,但它变得非常混乱。有没有更好的解决方案?

编辑:该服务托管在 IIS 上。

0 投票
0 回答
64 浏览

javascript - 需要解耦ng-model和filter

我是 Angularjs 的新手,我需要一些帮助。我的真实情况是关于 ng-model 和过滤器的使用:我的 ng-model 链接到一个范围变量,并且这个变量被过滤器使用。一旦 ng-model 检测到更改,过滤器就会启动,但是当用户单击“保存”按钮时,我需要应用过滤器。我的过滤器在控制器上定义为 $scope.filterFunction= function ( item )。我尝试使用假的 ng-model 对控件进行更改,但是该控件上的原始显示为空,如果我使用正确的 ng-model,则过滤器会自动启动。有没有人有解耦 ng-model 和 filter 的经验?任何建议表示赞赏。

0 投票
1 回答
58 浏览

angularjs - 如何解耦js和angularjs

为了避免在用其他框架替换angular时重写所有代码,我想知道是否有任何解耦angularJS和JS的解决方案?如果是,如何测试它们(因为不能再使用角度测试模块)?

0 投票
3 回答
630 浏览

android - 解耦片段和活动之间的通信

场景:您想通过适配器或视图持有者中的点击侦听器显示新片段。以下是我过去见过的两种最常见的解耦方法。我注意到他们都有自己的优点和缺点。

您通常更喜欢哪种方法?

  1. 在 Activity 侦听的接口上调用方法。
  2. 发布 Activity 订阅的事件(事件总线)。
  3. 其他一些方法。

请愿意分享原因。

0 投票
1 回答
59 浏览

sql - 解耦 SQL 文件和 API 模型

使用@BindBean 注解。SQL 文件按名称引用字段,如果更改了这些面向公众的字段名称之一,则需要更新 sql。但是 IDE 不了解 sql 绑定字段的上下文,因此在重命名期间不会自动更改 sql。为了避免将来的错误,我想避免这种情况。

下面是一个示例,说明如何使用任何可能的替代方法 BindBean。这不会涉及到每个对象值的单个绑定。

0 投票
1 回答
721 浏览

javascript - 解耦客户端是什么意思?

我正在准备前端开发面试,正在阅读这篇博客,作者提到 MVC 为您提供:

解耦客户端:像backbone.js这样的MVC框架通过它们的模型中的urlRoot属性激励你使用REST API;

这是什么意思?我认为解耦意味着部分代码彼此不知道 - 使用 REST API 的主干如何使模型不知道其他部分?