Я пытаюсь реструктурировать некоторый конкретный код GUI в проекте Java, назовем его Project A, удалив зависимости из проекта и переместив код в существующий API.У меня есть другой проект, который требует в основном те же функции / интерфейс, и я хотел бы повторно использовать эти возможности в этом другом проекте.
Я прочитал о Шаблоне проектирования фасада в книге «Шаблоны проектирования» от GoF и подумал, что он может быть применим здесь.
Прежде чем читать о шаблоне Facade, я попытался написать интерфейс IMessagePasser, который просто заменяет любой специфичный для проекта код интерфейсными методами, в качестве контракта, который должен быть реализован каждым клиентом, например, с ProjectAMessagePasser.Похоже, это относится к половине Facade, позволяя перемещать код GUI в API.
Полагаю, следующим шагом будет то же самое сделать с Project A, заменив зависимости GUI, добавив больше методов в ProjectAMessagePasser, чтобы выяснить, в основном, необходимые связи между ProjectBMessagePasser и кодом GUI.
У меня нет большого опыта крупномасштабной реструктуризации кода, но все ли это кажется разумным?Трудно сказать, не сделав сначала все изменения, и я не хочу тратить много времени, делая это одним способом, если есть лучший способ сделать это.