我知道松耦合和紧耦合的信息。但是我暂停了,什么时候我可以决定在哪里和什么时候使用?我不明白什么时候我需要松耦合和紧耦合?
请看:
如果您查看适配器类:
///
/// The 'Adapter' class
///
class Adapter : Target
{
private Adaptee _adaptee = new Adaptee();
public override void Request()
{
// Possibly do some other work
// and then cal
有人能帮我吗,我读了一些Java紧密和松散耦合的文章。我对松散耦合有一定的怀疑,看了几个YouTube视频和文章,但仍然不能理解某些要点。我会解释我理解什么,什么使我困惑。
在松散耦合中,我们限制类之间的直接耦合。但是在紧耦合中,我们被绑定到类。让我们举个例子。我有一个主类和另一个名为Apple的不同类。我正在主类中创建这个类的一个实例
Apple apple =new Apple();
//Apple is tightly coupled to Main class
apple.eat();
//If eat method signature is Changed to drink in
紧密耦合是指一组类高度依赖于彼此。
class C {
A a;
C(B b) {
a = b;
}
}
Interface A {
}
class B implements A {
}
在我的代码中,我是通过B类的引用而不是通过父接口A来接受类的对象。
我的代码是松散的还是紧密耦合的?
松散耦合是通过促进单一责任和关注点分离的设计来实现的。
使用父类或接口的引用可以使代码更灵活地采用任何子类的对象,但它是如何促进单一责任的。
松耦合是否可以通过任何其他方式来实现,而不是使用父类引用变量,在任何情况下都不是在我的代码中?
我只是在阅读由Steve McConell完成的代码,我正在考虑他在一个关于松耦合的章节中给出的一个例子。它是一个方法的接口,该方法计算员工的假期数,该方法是根据员工及其销售的开始日期计算的。作者建议将输入日期和销售额作为方法的参数,而不是雇员的实例:
int holidays(Date entryDate, Number sales)
而不是
int holidays(Employee emp)
其论点是,这会使方法的客户端解耦,因为它不需要知道任何关于Employee类的信息。
我想到了两件事:
提供计算中断封装所需的所有参数。它显示了如何计算结果的方法的内部。
这是很难改变的,例
我试图在我的一个颤振项目中实现松耦合。它找不到这种方法。在一个简单的Dart代码中复制了相同的内容,我如何解决这个问题,在Dart中是否有实现松耦合的方法?
abstract class A{}
class B extends A{
void help(){
print("help");
}
}
class C {
A b;
C({required this.b});
void test(){
b.help();
}
}
void main() {
var c = C(b:B());
c.test();
}
我希望有一个使用Spring Boot的微服务项目,它通过通过Spring Data JPA项目创建的依赖项来访问实体和DAO。这个想法是,多个微服务可以获得这种依赖。 然而,当jar被组装到Spring Boot Data JPA项目中时,许多依赖项通过starter依赖项包含在其中。它们中的大多数也出现在使用它的Spring Boot微服务项目中。 您将如何通过Spring Data JPA构建仅包含实体和存储库的jar?我还没有找到任何明确的例子来说明如何实现这一点,我不确定我是否偏离了我的想法。 提前谢谢。
我知道紧耦合和松耦合之间的区别,根据本文:
我不明白的是它所用的例子。
对于松散耦合,Java代码:
class Volume {
public static void main(String args[]) {
Cylinder b = new Cylinder(25, 25, 25);
System.out.println(b.getVolume());
}
}
final class Cylinder {
private int volume;
Cylinder(int length, int width