gpt4 book ai didi

oop - 一个类/包究竟什么时候依赖于另一个?

转载 作者:行者123 更新时间:2023-12-04 12:12:36 26 4
gpt4 key购买 nike

许多文章/书籍/....谈论类或包依赖,很少解释它是什么。我确实找到了一些定义,但它们各不相同,可能并不涵盖所有情况。例如。:

  • "when one class uses another concrete class within its implementation" (所以不存在对接口(interface)的依赖?)
  • "when a class uses another as a variable" (继承呢?)
  • "if changes to the definition of one element may cause changes to the other" (所以依赖不仅是包的传递关系,而且是类级别的传递关系?)
  • "the degree to which each program module relies on each one of the other modules" (但是你如何定义“依赖”?)

  • 要考虑的其他方面是方法参数、依赖注入(inject)、面向方面的编程、泛型。还有哪些方面?

    那么,您能否给出一个(正式)定义类之间和包之间的依赖关系,它是万无一失的,并且涵盖了所有这些情况和方面?

    最佳答案

    如果您在控制反转或依赖注入(inject)的上下文中要求依赖,那么您可能对直接相互交互的类感兴趣。这意味着主要是构造函数参数和属性。

    在 UML 域图的上下文中,您可能对“真实世界”的依赖关系感兴趣。狗需要食物。那是一种依赖。狗的Bark()方法返回 Sound对象:在 UML 域模型中,这不是您感兴趣的东西。狗不依赖声音的存在。

    您也可以对此进行哲学思考:所有类(class)相互依赖以实现共同目标;一个(希望)很棒的软件。

    所以,总而言之,依赖或耦合不是是或否的问题。这实际上取决于上下文和耦合程度(弱,强)。我认为这解释了为什么有许多不同的依赖定义。

    关于oop - 一个类/包究竟什么时候依赖于另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294309/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com