gpt4 book ai didi

java - 了解如何解耦

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:14 25 4
gpt4 key购买 nike

我一直试图在我的代码中保持耦合,但我想我可能没有完全理解它。我的基本理解是,耦合是“依赖的类如何相互依赖并了解彼此的行为”。我知道依赖注入(inject)是减少耦合和 IoC 的一种方法。

以下是我想出的关于学生、教授和类(class)的简单示例。一门类(class)有学生和教授的名单。我有一个注入(inject) Student 和 Professor 对象的 Controller (使用 MVC)。以下是否仍被视为耦合或紧密耦合?这也是 DI 的一个例子,对吗?

学生类

public class Student {
private String firstName;
private String lastName;
private int studentID;
private int address;
private int telephone;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getStudentID() {
return studentID;
}
public void setStudentID(int studentID) {
this.studentID = studentID;
}
public int getAddress() {
return address;
}
public void setAddress(int address) {
this.address = address;
}
public int getTelephone() {
return telephone;
}
public void setTelephone(int telephone) {
this.telephone = telephone;
}
}

教授类

public class Professor {
private String firstName;
private String lastName;
private int professorID;
private int address;
private int telephone;
private int salary;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getProfessorID() {
return professorID;
}
public void setProfessorID(int professorID) {
this.professorID = professorID;
}
public int getAddress() {
return address;
}
public void setAddress(int address) {
this.address = address;
}
public int getTelephone() {
return telephone;
}
public void setTelephone(int telephone) {
this.telephone = telephone;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}

类(class)类别

import java.util.List;

public class Course {
private List<Student> students;
private Professor professor;
public Professor getProfessor() {
return professor;
}
public void setProfessor(Professor professor) {
this.professor = professor;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}

}

最佳答案

我有一个注入(inject) Student 和 Professor 对象的 Controller (使用 MVC)。以下是否仍被视为耦合或紧密耦合?

由于所有引用都是类,因此您有一个紧密耦合的设计。一个好的方法是在代码中使用接口(interface)。这将允许您随时更改实现,并且不会影响应用程序的其余部分。

这也是 DI 的一个例子,对吗?

如果您的类(class)、教授和学生是已配置的 bean,并且您在某个地方指定了如何在 bean 实例化期间注入(inject)实例,那么这将是一个 DI 示例。现在只有三个 POJO 类。

关于java - 了解如何解耦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30758004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com