Я немного опоздал к обсуждению, но это метод сержанта.
Быстрый гугл возвращает "Мы называем большой метод здесь как метод" сержант ", который в основном вызывает другие частные методы и маршалинг их. Он может иметь кусочки кода здесь и там. Каждый из этих частных методовоб одной конкретной вещи. Это способствует сплоченности и делает метод сержанта читать как комментарии ".
Что касается того, как вы можете проверить это - ваш пример предположительно нарушает SRP, потому что у вас есть Zip-компрессор / декомпрессор (одна вещь) изатем шаг 1/2.Вы можете извлечь вызовы закрытых методов в другие классы и смоделировать их для своего теста.
Я не согласен с тем, что здесь Chain-of-Responsibility имеет большой смысл - компрессору не нужно знать о декомпрессоре (если ониВы тот же класс) или причина, по которой он делает декомпрессию.Классы обработки (Шаг 1/2/3) не должны заботиться о том, чтобы данные, с которыми они работают, сжимались ранее и т. Д.
Шаблон стратегии тоже не имеет смысла - просто потому, что вы можете поменяться местами.реализация extractZip или compressZip не означает, что у вас есть шаблон стратегии.