public class SchoolServiceImpl {
private static SchoolServiceImpl instance = new SchoolServiceImpl();
private static ClassServiceImpl classServiceImpl = ClassServiceImpl.getInstanse();
public static SchoolServiceImpl getInstanse() {
if (instance == null)
return instance = new SchoolServiceImpl();
return instance;
}
public int getSchoolCount() {
return classServiceImpl.getClassesCount();
}
public static void main(String[] args) {
System.out.println(classServiceImpl.getClassesCount());
}
}public class ClassServiceImpl {
/**
* @param args
*/
private static ClassServiceImpl instance = new ClassServiceImpl();
public static ClassServiceImpl getInstanse() {
if (instance == null)
return instance = new ClassServiceImpl();
return instance;
}
private static SchoolServiceImpl schoolServiceImpl=SchoolServiceImpl.getInstanse();
public int getClassesCount()
{
System.out.println(classServiceImpl.toString());
return schoolServiceImpl.getSchoolCount();
}
}如上两个类彼此依赖其中的方法,导致死循环,最终导致内存溢出。
从中得到的教训:尽可能减少类的彼此依赖,做到单向依赖。
本文深入探讨了在一个程序中如何避免类间的死循环,通过减少类之间的相互依赖来提高代码的可维护性和效率。特别关注了如何实现单向依赖原则,通过实例分析了类间相互调用可能导致的问题,并提供了有效的解决方案。
1111

被折叠的 条评论
为什么被折叠?



