问题标签 [separation-of-concerns]

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 投票
3 回答
165 浏览

list - 在列表之间“移动”对象的首选方式

我有两个单独的实体列表:

我想实现一个将Qux列表 Foo 中的对象移动到 Bar 的操作。实施它的最佳方法是什么?

  • 作为MoveTo实例方法EntityCollection

    /li>
  • 作为MoveFrom实例方法EntityCollection

    /li>
  • 作为静态Move方法EntityCollection

    /li>
  • 作为Move包含两个集合的类的实例方法:

    /li>

或者,由于实体一次只能在一个集合中,我可以让实体自己跟踪它们的位置,并在实体本身上实现它:

当出现这么多选项时,我想知道:move方法属于哪里?为什么?

0 投票
4 回答
310 浏览

asp.net-mvc - 如何在 ASP.NET MVC 中强制执行关注点分离?

自 2007 年(12 月)的 Preview 1 以来,我一直在学习、使用和使用 ASP.NET MVC。自 2008 年以来,我一直是它的粉丝,我一直支持它。

然而,我不断听到并阅读“ASP.NET MVC 强制执行严格的关注点分离”,包括在 Rob Conery、Scott Hanselman、Phil Haack 和 Scott Guthrie 的 Professional ASP.NET MVC 1.0 中阅读它。

我不明白的是执法。如果我用动作来定义我的控制器怎么办?

并在视图(aspx 视图引擎)中做所有事情?(数据获取、业务逻辑、决策制定、渲染等)

它(ASP.NET MVC)如何强制我分离关注点?

我认为这是一种公然的夸大其词,它应该读作“建议分离关注点”。

你能说服我它强制执行吗?

0 投票
1 回答
261 浏览

.net - 如何将我的实体与数据库模型分开?

我需要一些帮助来很好地组织我的数据模型。
我正在编写一个应用程序,它将是一个简单的笔记本。我使用三层架构 = 业务逻辑、数据逻辑、数据库访问。
我想使用标签系统,这样在应用程序中搜索信息会更容易。这里有几个问题
- 由于关注点分离,实体类和支持通过这些实体进行标记搜索的类必须不同。那么,最好的方法是什么 - 封装或继承?
- 将实体类与检索并向数据库提供信息的类分开是个好主意吗?如果是,它将是 4 个级别 - 实体类、数据库类、标签搜索助手和 BL 类。

0 投票
3 回答
1720 浏览

asp.net-mvc - ASP.NET MVC - 解决方案布局建议

我已经使用 ASP.NET MVC 几个月了,但我仍然对我的项目解决方案的布局不满意。我正在尝试构建一个尽可能便携和可重复使用的中型网站 CMS,但它的设计存在一些明显的问题。考虑到关注点分离,我正在寻找一些关于我应该如何构建我的解决方案的建议。我在这里发现了一个类似的问题,但它并没有真正针对我面临的一些问题。

现在这就是我的解决方案的布局方式:

我目前缺少的一件主要事情是放置我的业务逻辑的地方,我觉得我一直错误地将业务逻辑放置在我的存储库类中,并将其混合到控制器操作中。显然,我非常清楚这个问题,我只是不确定我应该将我的业务逻辑放在那个解决方案布局中的哪个位置。我的解决方案结构是否需要更改,或者我可以安全地将业务逻辑保留在我的模型项目中?此外,我真的不喜欢我的 EF 上下文位于模型类中,但我不知道如何将数据层代码与模型中所需的实体类隔离开来。

其他人如何布置他们的生产 ASP.NET MVC 解决方案?

0 投票
2 回答
175 浏览

asp.net-mvc - 谁负责对字符串进行编码?

谁负责对字符串、模型或视图进行编码?

我有一个来自数据库的字符串,它来自用户 - 我想在数据库中保留尽可能多的信息,所以我将逐字保存输入。

当我来显示字符串时,我应该在填充视图模型时对其进行编码,还是应该由视图决定是否要显示已编码的字符串?

谢谢,

0 投票
3 回答
294 浏览

asp.net-mvc - 关注点与性能的分离?

我有一个ASP.NET MVC站点,我试图找出控制器和模型(存储库)以及 HTML 帮助器功能的分离。

目标是查询相册信息的数据库表并按年份分组显示。

步骤是:

  1. 查询数据库并返回数据库信息的数据表。
  2. 将 Datatable 转换为 AlbumCollection(列表)
  3. 将专辑按年份存储到 ALbumDictionary
  4. 在单独的 HTML 表格中呈现每年。

给定这个请求,我可以看到: 1,2,3 all 在模型中,控制器简单地将 View 绑定到 AlbumDictionary 模型或模型中的 1,2 并绑定到 AlbumCollection 和 HTML ViewHelper 中的 3 或 1,2在控制器中的模型 3 中并绑定到 Albumdictionary

想法?

在第一个循环中进行每次转换都会有最好的性能,但我不确定这是最好的关注点分离。

特别是对于上述问题,一般反馈会很有趣:关注点分离何时会否决性能,反之亦然?

0 投票
4 回答
247 浏览

c# - 分离此代码的关注点的最佳方法是什么?

上一个问题中, Herbie 博士对已接受答案的评论之一是,我的方法正在执行两个职责……更改数据和保存数据。

我想弄清楚的是在我的情况下区分这些问题的最佳方法。

继续我的具有通过 NHibernate 检索的 Policy 对象的示例......

我目前将策略设置为非活动的方式如下:

如果我将数据访问和数据更新的责任分开,那么最好的方法是什么?

让 PolicyManager(充当 dao 的网关)管理 Policy 对象的状态是否更好:

或者让 Policy 对象维护它自己的状态,然后使用管理器类将信息保存到数据库中:

0 投票
3 回答
851 浏览

c# - 领域驱动设计布局问题

我是 DDD 的新手。我有一个配置文件类和一个配置文件存储库类。PROFILE 类包含以下字段 -> Id、Description、ImageFilePath

因此,当我添加一个新的配置文件时,我将图像上传到服务器并将其路径存储在我的数据库中。

当我删除配置文件时,图像也应该从我的文件系统中删除。

我的问题:

我在哪里为此添加逻辑。我的配置文件存储库有一个 Delete 方法。我应该在这里添加这个逻辑。或者我应该添加一个服务来封装这两个操作。

任何评论将不胜感激...

谢谢

0 投票
6 回答
2591 浏览

asp.net-mvc - 将帮助我执行控制器任务的功能放在哪里?

我目前正在开发一个 ASP.net MVC 网站项目。

我已经将所有与数据库相关的东西都放在了我的模型中,例如查询和更新/删除/保存功能。

我还创建了几个执行逻辑的控制器。我添加了一个 Helpers 命名空间,在该命名空间内有一些包含分页、国际化等逻辑的类。

我想知道放置做一些一般事情的函数和类的最佳实践是什么,比如生成发票?

0 投票
2 回答
377 浏览

wpf - 动态动画、命令和关注点分离

场景:我有一个(数字)文本框、一个按钮和一个标签。单击按钮时,我希望标签“动画”为文本框中的数值(如旋转表盘)

鉴于:

a) 故事板中的动画不能有数据绑定(因为它们不是 FrameworkElements) b) Silverlight 中缺少触发器

什么是最好的,并且视图模型与视图的故事板的耦合最少,更新目标动画值并在单击按钮时启动动画的方法是什么?

注意:这个场景是概念性的,所以不要专注于“动画”数字或任何东西的细节