发信人: sealbox()
整理人: majorsun(2000-10-11 09:50:20), 站内信件
|
就概念上来说,嵌套类除了在作用范围上有点关系外,其他好象也并无太多的关 联,两个类之间也没有特别的亲密关系。
在实际运用中,nested class往往是专用来为enclosing class服务的,而且只为 这个enclosing class。比较典型的例子是用MFC实现COM组件的情况,组件的接口 就是用nested class来实现的。组件类是由enclosing class实现的,而该组件的 每一个接口都要有一个nested class来充当实现体。
可以说一个nested class就是enclosing class的一个延伸,所以应该有明确的对 应关系,这个nested class也不应当再为其他的class服务。
以上是个人体会,请大虾们指正。
【 在 dropsun (射日) 的大作中提到: 】
: 毫无疑问,nested class是和另一个class相关的。比如
: class A nested in class B,则说明A是一个nested class。
: 看帮助说的是,一般A是用来完成B中的某种重要功能。那么
: 它和依赖关系或单向关联或聚集有什么区别呢?嵌套和类关
: .......
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.130.229.86] 发信人: dropsun (射日), 信区: SystemAnalysis 标 题: Re: 请问nested class到底是种什么关系 发信站: 网易虚拟社区 (Wed Sep 27 08:56:14 2000), 站内信件
【 在 sealbox (seal) 的大作中提到: 】
: 就概念上来说,嵌套类除了在作用范围上有点关系外,其他好象也并无太多的关
: 联,两个类之间也没有特别的亲密关系。
: 在实际运用中,nested class往往是专用来为enclosing class服务的,而且只为
: 这个enclosing class。比较典型的例子是用MFC实现COM组件的情况,组件的接口
: .......
UML中文论坛里有位网友是这样看的:
-------------------
nested class 是合成型聚集关系(Composite Aggregation) 的另一
种表达方式,也就是说nested class也可以用Aggregation表达出来,但
是,nested class更加精确地表达了一种专用的、紧耦合的关系,尤其在
代码生成时,nested class在Java中映射成inline class。比如,计算机
专用开关电源类可以作为计算机类的nested class,但是,电池组类就不一
定适合作为计算机类的nested class,因为,电池组类表述的是一个过于通
用的对象,可能还被包含(Aggregation)于模型中的其他设备对象。
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 168.160.251.66] 发信人: binbinaiai (彬彬), 信区: SystemAnalysis 标 题: Re: 请问nested class到底是种什么关系 发信站: 网易虚拟社区 (Wed Sep 27 21:22:46 2000), 站内信件
【 在 sealbox (seal) 的大作中提到: 】
: 就概念上来说,嵌套类除了在作用范围上有点关系外,其他好象也并无太多的关
: 联,两个类之间也没有特别的亲密关系。
: 在实际运用中,nested class往往是专用来为enclosing class服务的,而且只为
: 这个enclosing class。比较典型的例子是用MFC实现COM组件的情况,组件的接口
: .......哦
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.110.39.129] 发信人: sealbox (seal), 信区: SystemAnalysis 标 题: Re: 请问nested class到底是种什么关系 发信站: 网易虚拟社区 (Thu Sep 28 07:27:11 2000), 站内信件
虽然从定义上看不出太多的联系,但实际使用中nested class确实与enclosing class构成了一种紧耦合关系,并且几乎成为了enclosing class的一部分,他举 的这个例子很贴切,开关电源是属于计算机的一部分,二者不可分离;而电池组 却是一个与计算机分离的外部对象。
Java我不懂,这些体会都是基于C++的,可能会有些微小的差异,大方向应当是一 致的。
【 在 dropsun (射日) 的大作中提到: 】
: 【 在 sealbox (seal) 的大作中提到: 】
: : 就概念上来说,嵌套类除了在作用范围上有点关系外,其他好象也并无太多的关
: : 联,两个类之间也没有特别的亲密关系。
: : 在实际运用中,nested class往往是专用来为enclosing class服务的,而且只为
: .......
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.130.229.86]
|
|