耦合是指另一个对象对一个对象的使用。也可以称为协作。一个对象与另一个对象之间的依赖关系可以完成一些任务,可以分为以下两种类型:
紧密耦合 -当对象创建要使用的对象时,则为紧密耦合情况。由于主要对象创建了对象本身,因此无法从外部将其更改为易于将其标记为紧密耦合的对象。
松散耦合 -当对象从外部获取要使用的对象时,则为松散耦合情况。由于主要对象仅是使用对象,因此可以从外部轻松更改该对象,将其标记为松散耦合的对象。
测试器
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()。当调用