我通过互联网发表了很多文章,但是,我感到两者之间存在矛盾。因为在“ 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
组成不一定等于必须创建所包含的对象。
例如,您可以将实现更改为:
public class Computer{
private IRam _ram;
public Computer(IRam ram) {
_ram = ram;
}
}
public interface IRam {
int Bytes();
}
在此情况下是否有用可能值得商bat。不过,您仍在使用合成。
您的示例更多是一个聚合,在该聚合中所包含的类可能永远不需要其自身的生命周期。