如何定义软件组件? OOP和组件编程之间存在什么样的关系?这些范式的优缺点是什么?这些范式的“黄金比例”是什么?
发布于 2009-07-09 13:38:23
我认为组件编程本质上是oo的再创造。
oo的目标是成为黑匣子。但事实并非如此,组件编程正试图成为黑盒。
因此,我认为组件编程意味着超过了工程(以一种积极的方式)-因为为了成为黑盒,你必须预测未来的用例,并且已经迎合了它们。
它还暗示了一种彻底测试的文档化心理,在我的经验中,这似乎在面向对象编程中退居次要地位。
因此,您将提供线程和异步支持。您将发布接口、文档和单元测试。具有清晰的事件结构和行为。
基本上,你可以让别人重用它,并帮助他们做到这一点。
关键是一个组件有一个定义良好的接口和一个定义良好的函数。实际的实现细节不在此范围内,因为在考虑如何使用组件时,这些细节超出了范围。即一个组件可以是一组相当复杂的对象。
发布于 2009-07-09 13:31:38
我认为组件是一个比对象更高层次的组织概念。
组件通常是发布和部署的单元。您可能希望定义它们公开的接口以及它们在其他组件和基础架构方面的依赖关系。系统中的不同组件很可能是使用非常不同的技术开发的,事实上,单个组件不必是同构的。
如果用某种面向对象语言开发一个组件,那么您将分解职责,并得到该组件的OO设计。
发布于 2009-07-09 13:29:40
软件组件的粒度应该映射到重用的粒度。如果一块软件在其他地方被重用,那么它应该作为自己的组件进行版本控制和发布。如果它没有在其他地方重用,那么这几乎没有增加什么价值。
如果任何比完整类更小的类被认为是组件,并预期类的集合将形成组件,这将是令人惊讶的。
https://stackoverflow.com/questions/1103881
复制相似问题