如何实现高内聚低耦合?高内聚低耦合的现实例子

KLQ 2020-06-15 15:01:03 java常见问答 6662

下面要给大家分享的是一个高内聚低耦合例子,那么编程应该如何实现高内聚低耦合呢?一起来看看下面的实例吧!

案例:

在一个学校里面,有着老师若干名,依次编号。

有学生若干名,依次编号。

现在的话,是要求要打印出学校里面所有老师和学生的ID。

import java.util.ArrayList;
import java.util.List;
class Teacher
{
    privateString id;
    publicvoidsetId(String id)
    {
        this.id = id;
    }
    publicString getId()
    {
        return id;
    }
}
class Student
{
    private String id;
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
}
class StudentManage
{
    publicList < Student > getAllStudent()
    {
        List < Student > list = newArrayList < Student > ();
        for (int i = 0; i < 100; i++)
        {
            Student student = new Student();
            student.setId("学生学号是" + i);
            list.add(student);
        }
        return list;
    }
    public void printAllStudent()
    {
        List < Student > list1 = this.getAllStudent();
        for (Student s: list1)
        {
            System.out.println(s.getId());
        }
    }
}
class TeacherManage
{
    publicList < Teacher > getAllTeacher()
    {
        List < Teacher > list = newArrayList < Teacher > ();
        for (inti = 0; i < 100; i++)
        {
            Teacher teacher = new Teacher();
            teacher.setId("老师编号" + i);
            list.add(teacher);
        }
        return list;
    }
    publicvoidprintAllTeacher()
    {
        List < Teacher > list2 = this.getAllTeacher();
        for (Teacher t: list2)
        {
            System.out.println(t.getId());
        }
    }
}
public classClient
{
    publicstaticvoidmain(String[] args)
    {
        TeacherManagetm = newTeacherManage();
        tm.printAllTeacher();
        StudentManagesm = newStudentManage();
        sm.printAllStudent();
    }
}

低耦合高内聚原则本来就是为了降低了类之间的耦合。

因为每一个类减少了不必要的依赖,所以,的确能够降低耦合关系。

可是凡是都是要有度的,虽然说能够避免和非直接的类通信,可是,要通信,就一定要通过一个中介来发生关系,利用这个方法能够做到结构清晰,高内聚低耦合。

一个小的高内聚低耦合例子就给大家分享到这里了,你还想了解更多的java实例吗?请继续关注奇Q工具网来进行了解吧!

推荐阅读:

java表白代码,能否get到程序员的浪漫?

java怎么求数组的最大值和最小值?有没有比较简单的方法?

java怎么获取昨天,今天,明天的日期?java中获取日期的函数