什么是分离关注?

什么是分离关注?
什么是关心?
如何将应用程序分成这些“不同的问题”?

顾虑是软件function的不同方面。 例如,软件的“商业逻辑”是一个问题,一个人使用这个逻辑的界面是另一个问题。

关注点的分离将每个关注点的代码分开。 更改界面不应该要求更改业务逻辑代码,反之亦然。

模型 – 视图 – 控制器(MVC)devise模式是将这些关注点分离以提高软件可维护性的极好例子。

了解更多信息:

  • 关注点分离
  • MVC

你知道HTML和CSS? 那就是关注点的分离。

HTML文件(可能是XML)定义了文档结构。 CSS文件定义文档在屏幕上的显示方式。

http://en.wikipedia.org/wiki/Separation_of_concerns

在计算机科学中,关注点分离(SoC)是将计算机程序分解成function上尽可能less地重叠的不同特征的过程。 一个关心的问题是计划中的任何一个利益或重点。 通常,担心与特征或行为是同义的。 SoC的进展传统上是通过模块化和封装来实现的,在信息隐藏的帮助下。

它在维基百科上有描述: http : //en.wikipedia.org/wiki/Separation_of_concerns

这是单一责任原则中规定的价值,一个function/类别/方法应该只做一件事情。 它应该做的一切,做好,只做。 你可以在http://www.objectmentor.com/resources/articles/srp.pdf阅读;

基本上,这意味着你不应该把你的想法拼凑成一个块状的粘贴,但是你应该把代码中的想法分开。 如果不这样做,则很难更改,testing或debugging代码。 如果你把他们分开,那么你有一些自由改变。 例如,如果您将您的html生成器与您的查询绑定在一起,您将发现很难更改格式,并且您将很难切换到其他查询。 如果你把它们分开,那么这两件事情就变得容易了。 或者更简单,至less。

维基百科:

在计算机科学中,关注点分离(SoC)是将计算机程序分解成function上尽可能less地重叠的不同特征的过程。 一个关心的问题是计划中的任何一个利益或重点。 通常,担心与特征或行为是同义的。 SoC的进展传统上是通过模块化和封装来实现的,在信息隐藏的帮助下。

我发布这不是为了获得代表,但想知道为什么你会问一个可以很容易地回答的问题。

这个原则表明,一个给定的问题涉及不同的关注点,需要进行识别和分离以应对复杂性,并达到所需的工程质量因素,如鲁棒性,适应性,可维护性和可重用性。 链接

这个问题不是真正的答案,但是如果你对这个问题感兴趣的话,还有一个相关的devise模式,称为依赖反转Dependency Inversion)

假设你有一个需要受到外部影响的方法的类,或者你需要多个类的实现,或者这个类的方法使得unit testing变得困难。 您可以将该方法放在一个完全独立的类中,并将第一个类的实例作为parameter passing。

这在使用模拟接口时特别有用。 您可以通过传递其他类的硬编码值和预期结果来testing该方法。

一般来说,这意味着你将你的软件分成不同的function不重叠的区域。

维基百科有一个很好的解释:

http://en.wikipedia.org/wiki/Separation_of_concerns

数据可以用许多不同的方式表示,如果我们可以在表示之间进行转换,那么我们select使用哪种表示方式并不重要,因为我们应该能够访问和操作这些数据。 如果我们有一个通用的语言翻译,如果有人用法语,德语或阿拉伯语告诉我们时间, 我们翻译的能力将确保我们知道时间。 在数据方面,有三个重要的表示是重要的:数据存储位置和方式的物理表示; 可以存储什么数据的逻辑表示,其语义以及与其他数据的关系; 和外部表示,这是用户看起来的样子。 假设可以在不同的表示之间进行转换,可以让人们以他们喜欢的方式理解和使用数据。 因此,在物理层面上,数据库技术人员能够独立于逻辑描述或外部描述来优化数据的物理存储,只要它们调整存储的描述和表示之间的转换。 通过分离这些问题,可以构build通用数据集合,这些集合可以由具有不同需求并且使用不同表示的不同用户使用,而不需要复制数据。 我们将在整个课程中重新审视这些特征