当前位置: 首页 > 编程笔记 >

Java中的耦合

佟和安
2023-03-14
本文向大家介绍Java中的耦合,包括了Java中的耦合的使用技巧和注意事项,需要的朋友参考一下

耦合是指另一个对象对一个对象的使用。也可以称为协作。一个对象与另一个对象之间的依赖关系可以完成一些任务,可以分为以下两种类型:

  • 紧密耦合 -当对象创建要使用的对象时,则为紧密耦合情况。由于主要对象创建了对象本身,因此无法从外部将其更改为易于将其标记为紧密耦合的对象。

  • 松散耦合 -当对象从外部获取要使用的对象时,则为松散耦合情况。由于主要对象仅是使用对象,因此可以从外部轻松更改该对象,将其标记为松散耦合的对象。

示例-紧耦合

测试器

 

public class Tester {
   public static void main(String args[]) {
      A a = new A();

      //a.display()将打印A和B-
      //此实现不能动态更改
      //紧密耦合
      a.display();
   }
}

class A {
   B b;
   public A() {
      //b与A紧密耦合
      b = new B();
   }

   public void display() {
      System.out.println("A");
      b.display();
   }
}

class B {    
   public B(){}
   public void display() {
      System.out.println("B");
   }
}

这将产生以下结果-

输出结果

A
B

示例-松耦合

测试

import java.io.IOException;

public class Tester {
   public static void main(String args[]) throws IOException {
      Show b = new B();
      Show c = new C();

      A a = new A(b);          
      //a.display()将打印A和B-    
      a.display();

      A a1 = new A(c);
      //a.display()将打印A和C-    
      a1.display();
   }
}

interface Show {
   public void display();
}

class A {
   Show s;
   public A(Show s) {
      //s与A松散耦合
      this.s = s;
   }

   public void display() {
      System.out.println("A");
      s.display();
   }
}

class B implements Show {    
   public B(){}
   public void display() {
      System.out.println("B");
   }
}

class C implements Show {    
   public C(){}
   public void display() {
      System.out.println("C");
   }
}

这将产生以下结果-

输出结果

A
B
A
C

使用接口,我们通过注入依赖关系来实现松散耦合。

 类似资料:
  • 有人能帮我吗,我读了一些Java紧耦合和松耦合的文章。我看了好几段YouTube视频和文章,对松散耦合有一定的怀疑,但仍然无法理解某些要点。我会解释我所理解的和让我困惑的。 在松散耦合中,我们限制类之间的直接耦合。但在紧密耦合中,我们注定要去上课。让我们举个例子。我有一个主类和另一个名为Apple的不同类。我在Main类中创建了这个类的一个实例 让我们看看松耦合 如果我将松散耦合中的方法签名从“喝

  • 总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?

  • 本文向大家介绍什么是耦合?相关面试题,主要包含被问及什么是耦合?时的应答技巧和注意事项,需要的朋友参考一下 组件之间依赖关系强度的度量被称为耦合。好的设计总是高内聚和低耦合的。

  • 在读取行并将条目对象添加到列表中时(这需要很长时间),程序以OutOfMemoryException“Java堆”终止。 所以我的方法似乎对内存(和运行时)太难了。 有什么更好的方法吗?

  • 本文向大家介绍Python的Django框架中的URL配置与松耦合,包括了Python的Django框架中的URL配置与松耦合的使用技巧和注意事项,需要的朋友参考一下 现在是好时机来指出Django和URL配置背后的哲学: 松耦合 原则。 简单的说,松耦合是一个 重要的保证互换性的软件开发方法。 Django的URL配置就是一个很好的例子。 在Django的应用程序中,URL的定义和视图函数之间是

  • 在我的应用程序中,我有几个模块不适合“is-a”或“has-a”关系,但仍然需要相互通信和传递数据。为了尝试松散地耦合这些模块,我实现了一个事件总线类,用于处理从“事件海报”到“事件侦听器”的消息传递。 如果类希望注册接收某些事件,它们可以实现< code>IEventListener。同样,如果需要将事件推到总线上,类可以调用< code > event bus::postEvent()。当调用