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

initialization - 类内对象创建的责任

这听起来像是一个菜鸟问题。

当调用默认构造函数时,谁负责MyClass.myObjects的创建/初始化?

  1. MyClass 的构造函数。
  2. MyClass 的用户。
0 投票
3 回答
5364 浏览

c++ - 指针和面向对象编程

指针如何与面向对象编程的概念一起工作?

据我了解(请承认,我被归类为 ID-10T),OOP 的主要原则是包含在类中并保持管理责任(内存/实现/等);但是当一个对象的方法返回一个指针时,我们似乎在“弹出”这个对象。现在,有人可能需要担心:

  1. 他们应该删除指针的关联对象吗?
  2. 但是如果类仍然需要这个对象呢?
  3. 他们可以改变对象吗?如果是这样,怎么做?(我知道const可能会解决这个问题)
  4. 等等……

似乎该对象的用户现在需要更多地了解该类的工作方式以及该类对用户的期望。感觉就像是“猫从袋子里出来”的场景,似乎是在打 OOP 的耳光。

注意:我注意到这是一个独立于语言的问题;但是,在 C++ 环境中工作时,系统提示我提出这个问题。

0 投票
3 回答
666 浏览

ruby - 重构:何时停止重构?

我对划分一个类或实例方法并将其移动到自己的类中非常痴迷,很多时候一个简单的“hello world”方法会被划分为许多类。

例如,

将分为

有时感觉没有必要。这样做有什么好处吗?

我什么时候停止重构我的代码?有没有重构代码之类的东西?

0 投票
2 回答
63 浏览

smtp - What further happens after emails are received on SMTP ? Who Stores the email, is that SMTP?

I am developing a customized SMTP server, it is almost complete too. Other SMTP can now contact with my SMTP and I can successfully recive what they send to me. But now I am thinking is it responsibility of SMTP to store the received email OR I will have to pass recived values to any other program that stores these values(such as to,from,data) of recived emails. If so then what is that program ? If not then who will store received values, is that SMTP ??

0 投票
1 回答
173 浏览

html - 大屏幕上的文字变得难以阅读

css

我的显示器是 1024x768px。我测试了这个网站上的页面

如果测试尺寸为 1024x768 或更小似乎没问题,但如果测试尺寸较大(例如 1660x1050),顶部菜单上的文本会变得很小且不可读。

我尝试了百分比和视口字体大小 - 没有结果。菜单在大于 1024x768 的大屏幕上总是不可读。

那么,如何在所有显示器尺寸上保持文本可读性。

顺便说一句,如果文本在较大的显示器上变小,为什么文本在小显示器上不会变大?

你可以在这里看到我的现场测试页面

0 投票
1 回答
185 浏览

design-patterns - 模式如何帮助松散耦合?

我是 Java 模式的新手,我正试图弄清楚它如何适应现实世界。大多数关于模式的网站和书籍似乎都是由非程序员编写的。

我正在尝试定义模式如何帮助耦合,这是我迄今为止的定义。我想知道的是哪些模式对松散耦合真正有用,它们是否值得努力。另外,到目前为止我的定义/理解是否正确:

“耦合是程度,两个或多个不同的对象,相互访问和/或交互。”

两个对象之间的紧密耦合:

  • 引用/实例化:在许多地方,在一个或两个对象(多对多引用)中对另一个对象的许多尊重

  • 复杂性:通常很多参数需要访问函数,或者访问不同函数的顺序。相关对象没有通用接口。

  • 责任:做应该在被访问的对象或另一个对象中完成的工作。直接访问嵌套函数。

  • 性能:有时需要紧密耦合的最大原因,但应尽量减少。

两个对象之间的松散耦合:

  • 引用/实例化:很少,但在一个对象中至少有一个引用,但不是在两个(一对少数引用)
    中有帮助的模式:工厂、单例、生成器、复合

  • 复杂性:很少,定义明确的参数(通常由接口定义),具有最少可能的功能序列(exp. open, fetch, close)
    有帮助的模式:适配器,桥接器,装饰器,外观,命令 

  • 责任:只做对象负责做的工作,并尝试只访问下一层的功能。
    有帮助的模式:装饰器、责任链、MVC

  • 性能:确定性能需要在哪里,并将这些类放在一起——甚至可以作为嵌套类,根据定义紧密耦合。

0 投票
1 回答
30 浏览

structure - 在哪里运行参数验证

假设我们有一个函数,以及该函数的调用者

参数验证应该在哪里进行?

它可能是

或者它可能是

什么是更好的?或者,如果是情境性的,我什么时候应该使用什么?

也许这个的延伸也是我应该什么时候做

对比

0 投票
1 回答
55 浏览

architecture - 数据库的多部分应用程序责任

我有一个项目,由一个 web 应用程序、一个数据库和一个在后台运行的程序组成,该程序处理由 webapp 创建的行。这两个程序都使用数据库并存储它们所需的信息(两个应用程序都使用表)。

为了使情况更清楚,假设我有一个包含三个表 A、B 和 C 的数据库(由我的应用程序独家使用)。

  • A 仅由我的 webapp 使用。
  • C 仅由其他程序使用。
  • B 包含只有 webapp 需要的列以及其他程序使用的列,当然还有两者都使用的列。

你可以这样想整个项目:

  1. 用户通过 webapp 下订单
  2. webapp将订单存储在数据库中
  3. 另一个程序访问数据库并处理订单
  4. 如果在处理过程中发生错误,这些错误也会存储在数据库中

这就提出了以下问题:

  • 哪个程序应该负责管理数据库中的表?
  • 每个程序都应该自己管理其唯一需要的表,还是应该一个人管理所有表,以便从一个中心点管理数据库?
  • 谁应该管理两个应用程序都需要的表?
  • 或者我应该自己管理数据库,因为数据库结构不应该经常改变

旁边的一些信息:DBMS 是 9.3,webapp 使用访问数据库(目前使用进化管理数据库),另一个程序是用 scala 编写的,并使用 slick 访问

0 投票
0 回答
98 浏览

c# - 哪个类负责从数据库中获取数据

我有一个继承自接口(IDataSource)的数据库类和一个代表用户的类。

真正让我感到困惑的是,哪个类负责从数据库中获取用户数据——用户类是否应该定义一个需要数据库类/ IDataSource 的实例来执行查询的方法,或者数据库类是否应该实现一个方法接收用户数据并返回用户对象?

这只是一个一般性问题,我期待着阅读一个有用的答案。

编辑:

也许这样解释以下是如何工作的:

IValidator 会是什么样子?

据我所知,它看起来像这样:

我不能将“联系人”设置为接口的参数,否则每个实现接口的类都需要一个联系人作为参数。

是否可以在编译器不抱怨参数类型的情况下将“对象”定义为参数?

@ Active Records vs. Repository - 优点和缺点?

我找到的唯一解决方案是:

还是有另一种方法可以让它为多个班级工作?

0 投票
1 回答
64 浏览

oop - 代码设计:谁负责更改对象数据?

假设我有某种数据结构可以处理(例如图像),我想以不同的方式对其进行预处理和后处理,以使进一步的处理步骤更容易。使用像 C++ 这样的 OOP 语言来实现这一职责的最佳方式是什么?

进一步假设我有许多具有固有复杂性的不同处理算法,我很可能希望将它们封装在专用类中。这意味着尽管外部算法实现必须在我的数据中设置某种信息以表明它已被处理。这对我来说也不是干净的设计,因为经过处理似乎是与数据相关联的信息,因此数据对象本身应该自行确定和设置。

它看起来也是复杂应用程序中非常常见的错误来源:有人实现了另一种处理算法,忘记在数据中适当地设置标志,应用程序的完全不同部分中的某些东西无法按预期工作,有人会有很多发现错误很有趣。

有人可以概述一个好的和失败保存方法的一般结构来实现这样的东西吗?