问题标签 [responsibility]

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 回答
1606 浏览

c# - WPF - MVVM - 谁负责新的 DataProvider 连接?

我知道这可能是一个“编码风格”的问题,但在这一点上我真的很困惑。目前我正在尝试遵循 MVVM 模式(ViewModel、Repository、Controller 等)

但是谁应该发起与数据源的连接呢?特别是当多个控制器需要活动连接时?

那里没有那么多可能性 - 每个控制器本身打开一个新连接,相应的 ViewModel 打开连接并将其传递给存储库,然后将其传递给它的控制器 - 或者连接被实例化甚至更早(例如 StartUp 。CS)。

我知道没有“完美”的解决方案,但我希望能得到一些灵感,也许是一个好的/最佳实践。

更新 1

示例代码:

0 投票
2 回答
259 浏览

c# - 在 C# 中,_where_ 克隆对象的一些经验法则是什么?

情况如下:我试图确定克隆对象的位置部分以避免修改原始对象。

我有两个选择:

  • 调用者中克隆对象并将克隆的对象传递给方法(“被调用者”),从而防止被调用者进行潜在的修改。
  • 克隆被调用者中的对象,因为被调用者修改了它传递的对象,这假设调用者从不希望修改参数对象。

我找到了这个 6 岁的答案,有各种各样的意见。不幸的是,似乎没有真正的共识。

将对象的副本传递给方法——谁来复制?

这是我的代码形式的问题:

  • 我是否在调用者中克隆对象并将克隆的对象传递给方法?
  • 我是否克隆被调用者中的对象?

所以,我的问题是:

  • 对于跨语言克隆对象的位置有哪些好的经验法则,尤其是在 C# 和 .NET 领域?

  • 不管答案如何,有哪些好的方法可以记录修改参数的方法或克隆对象的方法的行为?

0 投票
2 回答
109 浏览

java - 哪个类应该负责在 JPA 中开始/结束事务?

所以我有一个这样的示例代码:

这就是我对它进行单元测试的方式:

这一切都很好。我的问题是关于OOP的。

我决定 BookDaoImpl 不应该负责获取 EntityManager。这应该是 BookService 的责任。为什么?我真的不知道。

此外,谁应该负责获得交易、开始和提交?又是 BookService 还是 BookDao?

0 投票
1 回答
71 浏览

android - 如何为 20 岁以下 api 的可穿戴设备制作 Android 应用程序的布局

我买了便宜的中国安卓手表,安卓 4.4.2,API 19。我想创建一个可以在手表和安卓手机上运行的应用程序。问题是,如果我将一些特殊布局放入 layout-watch 文件夹,则此限定符不起作用,因为它只能用于最小的 API 版本 20。此外,如果我编写如下内容:

它返回 false 并且表现得像非手表设备。您能否给我一些提示,如何为这种设备创建“手表应用程序”,这些设备也应该在 API 20+ 上运行?如何为可穿戴设备/手表指定特殊布局?如何编写可以确定当前设备是否为可穿戴设备/手表的条件?

谢谢

0 投票
1 回答
38 浏览

c# - 更改参数 - 谁负责?

我有一张被另一个应用程序填满的表格。该表包含一个名为 的属性IsMailSent

RequestEF根据数据库数据构建我的 Type 对象。

该对象看起来像这样:

现在我想创建一个服务,它将加载所有条目IsMailSent == false并将此邮件发送给他们的收件人。

我当前的代码工作如下:一个名为 MailMessageService 的类有一个Start()和一个Stop()方法。该Start方法如下所示:

该方法GetMailMessages接收一个 CollectionRequest并构建一个 Collection MailMessages。目前我创建了一个类,它继承自MailMessage并包含对相应请求对象的引用。背后的想法是MailService(负责发送邮件)应该将IsMailSent属性设置为true.

所以Send()方法应该设置IsMailSent = true

但这是最好的方法吗?据我了解 SOLID 原则,MailService不应该负责设置此属性(因为它负责发送邮件) - 还是我错了?

0 投票
1 回答
30 浏览

class - 班级及其责任分析

假设我有一个用例“客户在账户上存钱”。“Deposit()”功能应该去哪里?客户或帐户?这个用例的设计应该是什么?

0 投票
1 回答
888 浏览

python - 负责任的时间延迟 - 网络爬虫

将只抓取一个根页面的网络爬虫放入一个负责任/合乎道德的时间延迟是多少?

我在以下调用
requests.get(url) 之间使用 time.sleep(#)

我正在寻找一个关于时间表的粗略想法:1. 过于保守 2. 标准 3. 会引起问题/让你注意到

我想触摸满足特定标准的每一页(至少 20,000,可能更多)。这在合理的时间范围内可行吗?

编辑
这个问题不是关于避免被阻止(尽管任何相关信息将不胜感激),而是什么时间延迟不会对主机网站/服务器造成问题。我已经测试了 10 秒的时间延迟和大约 50 页。我只是不知道我是否过于谨慎。

0 投票
1 回答
16 浏览

rest - 视图标志应该由 API 还是消费者更新?

我确实希望这个问题过于主观,因为我实际上正在寻找一种有意义的“最佳实践”。但是,问题比这种情况要广泛一些。

假设我在一个对象上有一个视图标志(可见与否)。当看到这个对象时,我看到了三个选项来实现它:

  1. 让应用消费者通过UPDATE调用来设置它
  2. 当我们调用该GetObject方法时,我们自动将“seen”设置为true
  3. 我们在 API 中添加一个方法,SetToSeen说明消费者负责设置

这里的有利方法是什么?

0 投票
2 回答
119 浏览

architecture - 谁应该负责调用方法?

如果我有复杂的任务要解决,我有时会遇到一种情况,即我有一种方法可以控制执行。由于 null 检查、if 语句、调用类型之间映射的方法等等,这个方法可能会变得非常长,我很难让它变得更简单。

示例 1

我可以链接方法调用,这使得第一种方法更简单。但这使得 fooMethod 依赖于 _barService,barMethod 依赖于 _someService 等等。

示例 2(与上面相同,但使用链式方法调用)

我应该如何构建我的代码?当涉及到哪个方法负责调用另一个方法时,我应该怎么想?

换句话说,我应该这样做:

或者像这样:

0 投票
1 回答
17 浏览

responsibility - 让最终用户对他们的行为负责

我有一个程序可以找到可利用的网站并加以利用,我将其发布在我的 Github 上,人们开始使用它。最近,其中一个网站的所有者(我的电子邮件地址用于解决问题)联系了我,他对他们的网站被利用并使用我的工具感到非常不安。

是否有许可证、要说的事情(免责声明)或我可以做些什么来做到这一点,以便当有人使用我的工具时,如果他们利用某些东西,它就不会依赖我?

我在想,自从我创建了这个工具,它最终会回来困扰我,即使我无法控制其他人的行为。对此的任何帮助将不胜感激,谢谢。