

2.1.3 构件的特点
构件具有以下几个特点:
(1)自描述:构件必须能够识别其属性、存取方法和事件,这些信息可以使开发环境将第三方软件构件无缝地结合起来;
(2)可定制:允许提供一个典型的图形方式环境,软件构件的属性只能通过控制面板来设置;
(3)可集成:构件必须可以被编程语言直接控制。构件也可以和脚本语言或者与从代码级访问构件的环境连接,这个特点使得软件构件可以在非可视化开发项目中使用;
(4)连接机制:构件必须能产生事件或者具有让程序员从语义上实现相互连接的其他机制。
采用构件软件不需要重新编译,也不需要源代码并且不局限于某一种编程语言。该过程叫做二进制复用(Binary Reuse),因为它是建立在接口而不是源代码级别的复用之上的。虽然软件构件必须遵守一致的接口,但是它们的内部实现是完全自动的。因此,可以用过程语言和面向对象语言创建构件。



海口龙华秦甲钢材有限公司是一家主要生产 工字钢的大型企业。多年来凭借雄厚的技术实力,优质成熟的产品,完善的服务体系,取得了迅猛的发展,海口龙华秦甲钢材有限公司将充分发挥自身优势,秉承“科技领先,服务市场,诚信待人,追求”的宗旨和“产 品就是人品”的企业理念,不断进行技术创新、设备创新、服务创新、和管理方式创新来继续研发出更多满足未来发展需要的产品,推动我们 工字钢事业的发展。



其他定义
一个理解术语直观含义的方法就是列举它的所有特性。具体的做法是这样的:如果一样东西具有属性a1、a2和a3,它就是A。例如,在的Wegner定义(1987)里,如果一种语言支持对象、类和继承,那么它就可以被认为是面向对象的。
构件的特性是:
# 独立部署单元;
# 作为第三方的组装单元;
# 没有(外部的)可见状态。
这些特性有几种含义。一个构件是独立可部署的,意味着它必须能跟它所在的环境及其他构件相分离。因此,构件必须封装自己全部内部特性。并且,构件作为可部署单元,具有原子性,是不可拆分的。
在这样的约束下,如果第三方厂商能将一个构件和其他构件组装在一起,那么这个构件必须具备良好的内聚性,还必须将自己的依赖条件和所提供的服务说明清楚。换句话说,构件必须封装它的实现,并且只通过良好定义的接口和外部环境进行交互。
,一个构件不能有任何(外部的)可见状态--这要求构件不能与自己的拷贝有所区别。但对于不影响构件功能的某些属性则没有这种限制。


状态图中所示的状态机将表现对象的状态,并详尽说明状态转移及所需的行为。可以通过以下几种方法来实施状态机:
对于简单的状态机,定义一项列举可能状态的属性,然后使用该属性在 Java 或 C++ 中的 switch 语句中选择进入消息的行为。但这种方法不太适用于复杂的状态机,它可能会导致运行时性能降低。如需此方法的示例,请参见 【DOUG98】,第 4 章 4.4.3 对于较复杂的状态机,可使用状态模式。有关状态模式的说明,请参见 【GAM94】。【DOUG98】,第 6 章 6.2.3 状态模式也说明了这种方法 表驱动法对于极复杂的状态机十分有效,其特点是易于变更。当使用这种方法时,各个状态在表中都有相应的条目,这些条目将输入映射到后继状态和相关的转移动作。如需此方法的示例,请参见 【DOUG98】,第 6 章 6.2.3 状态表模式。 要实施具有并行子状态的状态机,可以将状态管理委派给主动对象(每个对象都被委派一个并行子状态),因为并行子状态代表了独立的计算(但仍可能进行交互)。每个子状态均可通过上述方法之一来进行管理。
通过委托关系复用实施
如果一个类或一个类的某些部分可通过复用现有类来实施,则应通过委托关系(而不要继承)来实现。
委托表示一个类借助于其他类来得以实施。该类通过使用变量来引用其他类的对象。当调用某操作时,该操作将调用被引用对象(属于被复用的类)中的操作,以实际执行该操作。这样,它就将职责委派给了其他类。


若发现该信息存在不合理、违法、违规、侵权等情形,可向我们提供相关证据,我们将及时予以删除。
发布时间:2025-06-03 20:43:17 技术支持:huaer.cc