2009-07-09 33 views

回答

1

我认为组件编程实质上是对oo的再造。

oo旨在成为黑匣子......但不是,组件编程试图成为黑匣子。因此,我认为组件编程意味着超过工程设计(以一种积极的方式) - 因为要成为黑盒子,你必须预见未来的用例并已经为它们照顾。

这也意味着一个彻底的测试文档的心理学,在我的经验,无论如何似乎在oo编码后退。

所以你会提供线程和异步支持。您将发布接口,文档和单元测试。有明确的事件结构和行为。

基本上任何你可以允许某人重复使用它并帮助他们这样做。

问题是组件有一个定义良好的接口和一个定义良好的函数。实际的实现细节不是其中的一部分,因为在考虑如何使用组件时它们超出了范围。即一个组件可能是相当复杂的一组对象。

+0

我会说,一类是黑盒(一个希望),在程序的情况下工作,而一个组件将是一个黑盒子,在几个不同的方案,其中包括一些尚未被写入的情况下工作。 – 2009-07-09 14:32:02

1

软件组件的粒度应映射到重用的粒度。如果一块软件在其他地方被重用,那么它应该作为自己的组件进行版本化和发布。如果它在其他地方没有被重用,那么这增加了很小的价值。

如果小于完整类的任何东西都被认为是一个组件,并且预期一组类将形成一个组件,那将是令人惊讶的。

2

我觉得Component是一个比Object更高级的组织概念。

组件通常是发布和部署的单元。您会期望定义它们公开的接口以及它们在其他组件和基础设施方面的错误。系统中的不同组件可能使用非常不同的技术开发,并且实际上单个组件不需要是同质的。

如果使用某种面向对象语言开发组件,则可以分解责任,并为该组件创建一个面向对象的设计。

+0

理论上一个完全可以设计一个系统,没有任何组件的OO层次。我必须同意霍华德的看法,重用的粒度似乎决定了组件应该是多大和多大。 – citn 2009-07-09 13:37:26

0

我会想到一个组件作为一个应用程序的子系统,你可以考虑像一个黑盒子。
因此,在OOD中,一组具有明确规范的类和接口是一个明确的目的,它允许您执行一些计算,而无需知道框由哪个组成。

输入 - > [黑盒] - >输出

什么furter标识成分是:

  • 高内coesion
  • 否相对于所述应用程序的其余的依赖关系,使得组件可以轻松导入一个或多个项目中。

组件编程我觉得其实是组装组件来构建较大的应用程序。
在一个非常“utopistic”的看法应该有公共的资源,你可以查找fullfills您的规范的组件。一旦你找到了组件,你可以将它集成到你的应用程序中。

相关问题