Java ls松耦合可以通过任何其他方式实现,而不是使用父类引用变量,一般来说,在mine代码中不是特别的?

Java ls松耦合可以通过任何其他方式实现,而不是使用父类引用变量,一般来说,在mine代码中不是特别的?,java,loose-coupling,tightly-coupled-code,Java,Loose Coupling,Tightly Coupled Code,紧密耦合是指一组类彼此高度依赖 在我的代码中,我通过类B的引用而不是父接口A接受类的对象 我的代码是松散耦合的还是紧密耦合的 松耦合是通过一种促进 单一责任和关注点分离 使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任 松散耦合是否可以通过任何其他方式而不是使用父类引用变量来实现,在任何情况下,在我的代码中都没有明确说明 这感觉像是在做家务,但这是我的答案 代码紧密耦合,因为C的构造函数依赖于B而不是接口A。如果您想将C与B解耦,您将接受A的实例,而不是B 松散耦合代

紧密耦合是指一组类彼此高度依赖

在我的代码中,我通过类B的引用而不是父接口A接受类的对象

  • 我的代码是松散耦合的还是紧密耦合的

    松耦合是通过一种促进 单一责任和关注点分离


  • 使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任

  • 松散耦合是否可以通过任何其他方式而不是使用父类引用变量来实现,在任何情况下,在我的代码中都没有明确说明


  • 这感觉像是在做家务,但这是我的答案

    代码紧密耦合,因为
    C
    的构造函数依赖于
    B
    而不是接口
    A
    。如果您想将
    C
    B
    解耦,您将接受
    A
    的实例,而不是
    B

    松散耦合代码

    class C {
        A a;
    
        C(A a) {
          this.a = a;
        }
    }
    

    这感觉像是在做家务,但这是我的答案

    代码紧密耦合,因为
    C
    的构造函数依赖于
    B
    而不是接口
    A
    。如果您想将
    C
    B
    解耦,您将接受
    A
    的实例,而不是
    B

    松散耦合代码

    class C {
        A a;
    
        C(A a) {
          this.a = a;
        }
    }
    
    Ans1:

    紧密耦合是指一组类彼此高度依赖

    您的代码是紧密耦合的,因为:

    因为C的构造函数依赖于B,并且您将B的对象存储在类型A中

    Ans2:

    松耦合是通过促进单一责任和关注点分离的设计实现的

    接口是用于解耦的强大工具。类可以通过接口而不是其他具体类进行通信,任何类都可以通过实现接口而处于通信的另一端

    例如:

    class C {
        A a;
    
        C(A b) { // use interface A rather Class B
          a = b;
        }
    }
    
    Ans1:

    紧密耦合是指一组类彼此高度依赖

    您的代码是紧密耦合的,因为:

    因为C的构造函数依赖于B,并且您将B的对象存储在类型A中

    Ans2:

    松耦合是通过促进单一责任和关注点分离的设计实现的

    接口是用于解耦的强大工具。类可以通过接口而不是其他具体类进行通信,任何类都可以通过实现接口而处于通信的另一端

    例如:

    class C {
        A a;
    
        C(A b) { // use interface A rather Class B
          a = b;
        }
    }
    


    哦,天哪,格式化。为什么不先看一下文档呢?请看@chokdee,我知道使用父对象的引用是松散耦合的,就像我在代码中所做的那样,但是当我接受对象时,它是由同一个类引起的,这就是为什么我感到困惑的原因。哦,天哪,格式问题。为什么不先阅读文档呢?请看@chokdee我知道使用parent的引用和我在代码中做的一样是松耦合的,但是当我接受对象时,它是由同一个类引起的,这就是为什么我感到困惑的原因。我无法进行编辑,因为它太小了,但是C的构造函数的参数应该使用小写字母“a”作为名称。谢谢大家。正如Sumit Singh所说,松耦合是通过促进单一责任和关注点分离的设计实现的。因此,我的观点是使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任。@dubey theHarcourtians I相信答案在于问题的措辞。因为它专门询问构造函数并接受实现,而不是接口。是的,它可能仍然是紧密耦合的,但这肯定是松散耦合的。我不能进行编辑,因为它太小了,但是C的构造函数的参数应该使用小写字母“a”作为名称。谢谢大家。正如Sumit Singh所说,松耦合是通过促进单一责任和关注点分离的设计实现的。因此,我的观点是使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任。@dubey theHarcourtians I相信答案在于问题的措辞。因为它专门询问构造函数并接受实现,而不是接口。是的,它仍然可以是紧密耦合的,但这肯定是更松散耦合的。这正是所有困惑的根源——如何使用父类的引用变量使其成为单一责任和分离的concerns@dubey-Harcourtians就是界面出现的地方,在代码中使用ex A接口,而不是使用具体的类,因此实现可以不同。使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任和关注点分离。关注点分离是指您的代码没有与其他类紧密耦合,所以,若您使用接口,那个么和任何类都并没有耦合。有关更多详细信息,请参阅一些教程。我谈论的是单一责任?正是所有困惑的根源,即如何使用父类的引用变量使其成为单一责任和分离责任concerns@dubey-Harcourtians就是界面出现的地方,在代码中使用ex A接口,而不是使用具体的类,以便实现可以不同。使用父类或接口的引用使代码更灵活地采用任何