成分如何帮助松散耦合?

问题描述 投票:0回答:1

我通过互联网发表了很多文章,但是,我感到两者之间存在矛盾。因为在“ tutorialspoint”中他们说loose coupling is“当对象从外部获取要使用的对象时,这是一种松散耦合的情况。由于主要对象仅在使用该对象,因此该对象可以被外界改变很容易将其标记为松散耦合的对象。“

Tight coupling is“当一个对象创建要使用的对象时,这是一个紧密耦合的情况。由于主要对象创建了对象本身,因此无法从外部更改该对象,因此很容易将其标记为紧密耦合的对象。

但是我们知道在合成中我们曾经做过类似下面的事情。

public class Computer{
    private RAM theRam;

    public Computer(){
        this.theRam = new RAM();

    }

}


public class RAM{
//

}

所以在这里您可以根据“ tutorialspoint”的定义看到,我们不能从Computer类的外部创建RAM对象,它只能在创建Computer对象时创建。根据我在组合物中的知识,一个对象无法独自生存,并且最强的关联类型也是Composition,所有这些功能都在上面的代码中。那么,两个对象之间的这些强键如何减少耦合?它是否遵循“紧密耦合”的定义tutorialspoint”。

指向tutorialspoint的文章的链接https://www.tutorialspoint.com/Coupling-in-Java

java oop composition coupling
1个回答
3
投票

组成不一定等于必须创建所包含的对象。

例如,您可以将实现更改为:

public class Computer{
    private IRam _ram;

    public Computer(IRam ram) {
        _ram = ram;
    }
}

public interface IRam {
    int Bytes();
}

在此情况下是否有用可能值得商bat。不过,您仍在使用合成。

您的示例更多是一个聚合,在该聚合中所包含的类可能永远不需要其自身的生命周期。

© www.soinside.com 2019 - 2024. All rights reserved.