首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >确定适航性时要考虑的范围?

确定适航性时要考虑的范围?
EN

Stack Overflow用户
提问于 2018-09-17 00:08:04
回答 2查看 22关注 0票数 0

在决定ClassA是否可以“导航到”ClassB时,您是只考虑ClassA的字段/属性,还是还考虑ClassA的任何方法实际上“导航”到ClassB的任何对象?或者,您是否考虑过ClassA的某些方法只是暂时持有对ClassB的任何对象的引用?

换句话说:假设我有一个ClassA,它没有任何ClassB类型的字段。但是,我有一个方法ClassA.method1(ClassB b)。当该方法被调用时,它通过调用b.method2()从b中提取信息,执行相应的操作,然后超出作用域,但是对b的引用不会永久存储在ClassA中。我是否指示ClassA可以导航到ClassB?

更简单地说,假设ClassA.method1(ClassB b)只是将b传递给其他对象,而从不调用b上的任何方法。我是否表明ClassA 可以导航到ClassB,仅仅因为它暂时持有对ClassB的引用?

或者,当且仅当ClassA有一个类型为ClassB的字段时,我是否应该指出ClassA可以导航到ClassB?

EN

回答 2

Stack Overflow用户

发布于 2018-09-18 04:58:15

可导航性过去意味着特定的类拥有一个属性,该类可以通过该属性访问该属性的类型。句号。它与操作或实现方法无关。

现在可导航性的意义很小,一个明确的“球”符号告诉你一个类,而不是一个关联,拥有一个属性。更改的原因是,当关联拥有属性时,没有什么可以阻止类导航。(例如,考虑跨表示关联的关系表查询RDBMS。)我一点也不喜欢球标记法,但它就是这样。

票数 1
EN

Stack Overflow用户

发布于 2018-09-17 01:31:46

导航性是你并不真正需要的东西。它只是意味着“将有一些属性访问另一个类,但在当前的设计阶段,我不知道如何调用它”。然而,这些隐含的属性大多是显而易见的。根据我的经验,只有极少数的情况下,你实际上应该使用导航来清理某些方面。在大多数情况下,我只使用简单的无定向关联。在稍后的设计阶段,我添加了一个角色名称,并使用点符号使其成为拥有的属性。

对于操作使用另一个类作为参数或结果,并且没有显式属性的情况,您只需使用依赖关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52355969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档