2014-12-11 3 views
0

У меня очень большое приложение java с interdepent классами, и мы решили преобразовать наше большое приложение в модули. Чтобы начать с этой задачи, я хотел бы собрать идеи.Как сделать модульность существующего приложения Java?

Мои вопросы почти так же, как просили здесь: How to modularize a (large) Java App?

Re-Задавая этот вопрос главным образом потому, что был дан ответ 5 лет назад. Любые новые идеи приветствуются.

+0

Я бы предположил, что ответы все равно будут действительны. Один из способов начать - создавать фасады для любой внешней системы внешнего вида и вместо использования объектов, которые вы используете для общения с внешним миром (через мыло, http, whatnot), копировать значения во внутренний объект. Затем попробуйте найти логические точки демаркации для системы. какая группа функций включена/выключена вместе, что работает как полностью отдельная подсистема. а затем весело, пробираясь через большую кучу кода. Я делаю что-то подобное в данный момент, разделяя операторы switch более 1000 строк. – Joeblade

+0

Как вы взаимодействуете между различными модулями? –

ответ

1

Это не полный ответ на этот вопрос, я считаю, что ссылка в вопросе остается в силе. Этот ответ называется некоторыми предложениями по процессу.

Один из способов начать создавать фасады. Сначала на бумаге решайте, где лежат границы ваших модулей. (какие классы входят в группу классов, составляющих модуль). Затем создайте класс фасада (в зависимости от используемой структуры, реализации singleton или использования Spring для ioc). Тогда всякий раз, когда вы получаете доступ к классу извне вашего модуля, внешний класс вызывает фасад, а фасад вызывает фактический класс.

Если у вас есть внешний класс, выполняйте несколько вызовов классов модулей, то либо этот класс принадлежит внутри этого модуля, либо вам необходимо извлечь поведение макроса (серия вызовов и взаимодействий) в 1 метод и перенести этот метод на фасад ,

+0

Как вы управляете межмодульной зависимостью? Любая инфраструктура, инструменты и т. Д.? –

+0

@VineetSingla В настоящее время я использую экран дизайна Sonar, чтобы дать мне представление о том, какие классы зависят от того, какие классы. кроме этого я использую здравый смысл. (мой проект не превышает 500 000 строк кода, поэтому он управляем) – Joeblade

+0

http://www.eclipsezone.com/articles/lattix-dsm/?source=archives это сопоставимо, не знаю, какой инструмент они использовали специально, но это может помочь – Joeblade

Смежные вопросы