发信人: 3871() 
整理人: leeyg(2001-06-05 22:50:06), 站内信件
 | 
 
 
2对象:对象ClassA,有属性PropertyA;另一对象:名ClassB,有属性
 PropertyB。
 
 其中PropertyB需引用类A中的PropertyA。
 
 问题是:存在一个类对另一个类的属性引用的两个类之间的关系是
 什么关系,在理论上是如何论述的?
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.35.30] 发信人: zhaofy (妖道), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Fri Oct 15 10:02:10 1999), 站内信件
  【 在 3871 (3871) 的大作中提到: 】
 : 2对象:对象ClassA,有属性PropertyA;另一对象:名ClassB,有属性
 : PropertyB。
 : 
 : 其中PropertyB需引用类A中的PropertyA。
 :    .......
 
 用实例连接
  -- <H1>“什么时候才能消灭小日本,还我中华民族的尊严呵?”妖道悲天悯人地顿足捶胸.
 [email protected]
 http://www.zhaofy.com
 http://www.netbug.net.cn/~zhaofy</H1>
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.135.50] 发信人: 3871 (3871), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Fri Oct 15 12:43:22 1999), 站内信件
  【 在 zhaofy (妖道) 的大作中提到: 】
 : 【 在 3871 (3871) 的大作中提到: 】
 : : 2对象:对象ClassA,有属性PropertyA;另一对象:名ClassB,有属性
 : : PropertyB。
 : : 
 :    .......
 
 我觉得这种关系似乎不像是实例连接,实例连接间的依赖关系比这种关系
 紧密。
 
 提出这个问题,是因为在用DELPHI实现时,一个Form中要另一个From的
 属性,这种连接似乎比消息连接紧,但又比实例连接松。
 
 我现在是用消息连接的方法实现。但似乎系统开销太大。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.35.30] 发信人: hyenachenyao (BlueHyena), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Fri Oct 15 18:59:32 1999), 站内信件
  【 在 3871 (3871) 的大作中提到: 】
 : 【 在 zhaofy (妖道) 的大作中提到: 】
 : : 【 在 3871 (3871) 的大作中提到: 】
 : :    .......
 : 
 :    .......
 
 我认为这两个类是一种信任关系.
 在delphi中一个form 引用另一个form 中的变量(属性), 在 uses 子句中
 添加要引用的form 单元就可以了.而被引用的变量(属性)应该是被声明为public 的.
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.72.251.28] 发信人: tryit (懒虫), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Fri Oct 15 20:57:11 1999), 站内信件
  是属性和属性之间有引用吗?
 我看是ClassB 引用 ClassA 的属性 PropertyB 吧 ?
 
 【 在 3871 (3871) 的大作中提到: 】
 : 2对象:对象ClassA,有属性PropertyA;另一对象:名ClassB,有属性
 : PropertyB。
 : 
 : 其中PropertyB需引用类A中的PropertyA。
 :    .......
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.191.78] 发信人: 3871 (3871), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Sat Oct 16 11:48:26 1999), 站内信件
  【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : 我认为这两个类是一种信任关系. 
 : 在delphi中一个form 引用另一个form 中的变量(属性), 在 uses 子句中 
 : 添加要引用的form 单元就可以了.而被引用的变量(属性)应该是被声明为public 
 : 的. 
 
 谢谢,我以前经常这样用。
 
 我想在理论上探讨一下为什么可以这样用。(从系统分析的层面)
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.35.251] 发信人: hyenachenyao (BlueHyena), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Sat Oct 16 14:14:52 1999), 站内信件
  【 在 3871 (3871) 的大作中提到: 】
 : 【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : : 我认为这两个类是一种信任关系. 
 : : 在delphi中一个form 引用另一个form 中的变量(属性), 在 uses 子句中 
 : : 添加要引用的form 单元就可以了.而被引用的变量(属性)应该是被声明为public 
 :    .......
 我不知道您所说的从系统分析方面是什么意思.
 在C++语言中,我记得在类与类之间有一种关系信任关系,我想delphi中这种一个
  
 类引用另一个类中的属性大概就是这种关系的表现吧.
 
 在我看到的许多国外的文章(讨论面向对象方面)中,认为类中包含属性和服务.
 当一个类想访问另一个类的属性时,应该向此类发出服务请求,此类给与服务的回 
 应.
 当然,直接引用此类的属性是服务的简化.从您定义的类与类之间的关系来看,
 应该是消息连接关系.
 
 这是我的一点想法,不一定正确,互相讨论.
 
 
 
 -- ※ 修改:.hyenachenyao 于 Oct 16 14:28:53 修改本文.[FROM: 210.72.251.208] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.72.251.208] 发信人: 3871 (3871), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Sat Oct 16 15:51:53 1999), 站内信件
  【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : 【 在 3871 (3871) 的大作中提到: 】
 : : 【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : :    .......
 : 我不知道您所说的从系统分析方面是什么意思.
 :    .......
 
 你说得对,一个类直接对另一个类的属性进行引用是一种简化。
 它绕过了类的封装。
 
 我以前经常从一个类中引用另一类的属性,当系统一大,这种
 直接的引用的缺点就显现出来:
 1、破坏了模型的完整性(分析时并没有这两个模型(类)的关系,
 但在实现时却用到了这种关系)
 2、不规范,互相引用到一定程度时,非常凌乱。
 3、对象之间的藕合度大大增强,很不利于大型系统的开发。
 
 所以,我想找一个理论,可以统一地解决这个问题,我觉得很有
 可能是我对类的概念还理解得很肤浅,在建模上出了问题。
 
 正如你所说,严格地讲,这是一个类对另一个类的服务请求,而服务
 正是类的消息,所以,我将它归类到消息连接。
 
 但是,真有必要为每一个这样的服务而在分析层面为它们建模吗?
 请指教?
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.35.251] 发信人: tryit (懒虫), 信区: SystemAnalysis 标  题: Re: 请教一个面向对象的问题.... 发信站: 网易虚拟社区 (Sun Oct 17 19:41:43 1999), 站内信件
  我认为属性就是用来公开的,否则要属性干什么,全部都成内部变量了。
 
 【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : 【 在 3871 (3871) 的大作中提到: 】
 : : 【 在 hyenachenyao (BlueHyena) 的大作中提到: 】
 : :    .......
 : 我不知道您所说的从系统分析方面是什么意思.
 :    .......
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.191.78]
  | 
 
 
 |