История изменений
Исправление
Legioner,
(текущая версия)
:
Я так понимаю, package - это и есть модуль?
Модуль это файл. package это логически связанные модули. Ну и импорты можно не писать, если классы в одном пакете.
Тогда это пример как раз решения циклических ссылок в рамках одного модуля. Интерфейс состоит из трёх классов A,B,Test. А когда из станет не 3, а 303, будет несколько неудобно работать с таким пакетом. Вот я и хочу разбить 303 на 150 и 153. 150 в парсере оператора и 153 в парсере выражения.
Можно разместить эти классы в разных пакетах, всё будет работать точно так же.
// a/A.java
package a;
import b.B;
public class A {
public B b;
public int f(int x) {
return b.f(x);
}
}
// b/B.java
package b;
import a.A;
public class B {
public A a;
public int f(int x) {
return x == 0 ? 1 : x * a.f(x - 1);
}
}
// test/Main.java
package test;
import a.A;
import b.B;
public class Test {
public static void main(String[] args) {
A a = new A();
B b = new B();
a.b = b;
b.a = a;
System.out.println(a.f(5));
}
}
Исходная версия
Legioner,
:
Я так понимаю, package - это и есть модуль?
Модуль это файл. package это логически связанные модули. Ну и импорты можно не писать, если классы в одном пакете.
Тогда это пример как раз решения циклических ссылок в рамках одного модуля. Интерфейс состоит из трёх классов A,B,Test. А когда из станет не 3, а 303, будет несколько неудобно работать с таким пакетом. Вот я и хочу разбить 303 на 150 и 153. 150 в парсере оператора и 153 в парсере выражения.
Можно разместить эти классы в разных пакетах, всё будет работать точно так же.