uml结构图讲解(概述耦合UML)
uml结构图讲解(概述耦合UML)假设在学校的一个环境中,校长作为最高的职务所有人,肯定不会直接参与到对于老师和学生的管理中,而是通过一层一层的管理体系来进行统筹规划,这里的校长,和老师学生之间就可以理解为陌生关系,而校长和中层的教务主任却是朋友关系,毕竟教务主任数量少,也可以直接进行沟通迪米特法则中的“朋友”是指:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法注意:请不要过分的使用迪米特法则,因为其会产生过多的中间类,会导致系统复杂性增大,结构不够清晰下面还是用一个例子来说一下
品德优秀的学生接口
public interface IGoodMoralCharacterStudent {
//品德优秀
void goodMoralCharacter();
}
复制代码
好学生实现多个接口
public class GoodStudent implements IGoodGradesStudent IGoodMoralCharacterStudent {
private String name;
public GoodStudent(String name) {
this.name = name;
}
@Override
public void goodGrades() {
System.out.println("【" this.name "】的学习成绩优秀");
}
@Override
public void goodMoralCharacter() {
System.out.println("【" this.name "】的品德优良");
}
}
复制代码
定义:如果两个类不必要彼此直接通讯,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用
这句话的意思就是说,一个类对自己依赖的类知道越少越好,也就是每一个类都应该降低成员的访问权限,就像封装的概念中提到的,通过 private 隐藏自己的字段或者行为细节
迪米特法则中的“朋友”是指:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法
注意:请不要过分的使用迪米特法则,因为其会产生过多的中间类,会导致系统复杂性增大,结构不够清晰
下面还是用一个例子来说一下
假设在学校的一个环境中,校长作为最高的职务所有人,肯定不会直接参与到对于老师和学生的管理中,而是通过一层一层的管理体系来进行统筹规划,这里的校长,和老师学生之间就可以理解为陌生关系,而校长和中层的教务主任却是朋友关系,毕竟教务主任数量少,也可以直接进行沟通
教务主任类 AcademicDirector
public class AcademicDirector {
private Principal principal;
private Teacher teacher;
private Student student;
public void setPrincipal(Principal principal) {
this.principal = principal;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public void setStudent(Student student) {
this.student = student;
}
public void meetTeacher() {
System.out.println(teacher.getName() "通过教务主任向" principal.getName() "汇报工作");
}
public void meetStudents() {
System.out.println(student.getName() "通过教务主任与" principal.getName() "见面");
}
}
复制代码