接口隔离原则的目的在将一个接口中的方法分类,分割成诸多更细划分的具体小接口,每个接口中的方法都是有共性的。这样写的目的就在于提高一个接口中的内聚。
/*
* 查询接口
*/
public interface QueryService {
/**
* 查询班级
*/
void QueryClazz();
/**
* 查询学生
*/
void QueryStudent();
/**
* 查询老师
*/
void QueryTeacher();
}
/*
* 修改接口
*/
public interface UpdateService {
/**
* 修改班级
*/
void UpdateClazz();
/**
* 修改学生
*/
void UpdateStudent();
/**
* 修改老师
*/
void UpdateTeacher();
}
/*
* 接口实现
*/
public class ServiceImpl implements QueryService,UpdateService {
public static QueryService getQueryService()
{
return new ServiceImpl();
}
public static UpdateService getUpdateService()
{
return new ServiceImpl();
}
@Override
public void QueryClazz() {
System.out.println("调用班级查询接口");
}
@Override
public void QueryStudent() {
System.out.println("调用学生查询接口");
}
@Override
public void QueryTeacher() {
System.out.println("调用老师查询接口");
}
@Override
public void UpdateClazz() {
System.out.println("调用班级修改接口");
}
@Override
public void UpdateStudent() {
System.out.println("调用学生修改接口");
}
@Override
public void UpdateTeacher() {
System.out.println("调用老师修改接口");
}
}
这种接口实现是基于这两类接口有共性,若没有关联可以将实现也分开,实现隔离,更方便开发和扩展。
/*
* 测试
*/
public static void main(String[] args) {
QueryService queryService = ServiceImpl.getQueryService();
UpdateService updateService = ServiceImpl.getUpdateService();
queryService.QueryClazz();
updateService.UpdateStudent();
}
调用班级查询接口
调用学生修改接口