Conversation
Khmelov
left a comment
There was a problem hiding this comment.
Приложение написано аккуратно и с небольшими замечаниями, поставил оценку б
|
|
||
| public class ConsoleRunner { | ||
| public static void main(String[] args) { | ||
| new ConsoleApplication().run(); |
There was a problem hiding this comment.
Обычно при сборке приложения через конструктор передают все необходимые зависимости
| public abstract class BaseCipher { | ||
|
|
||
| protected String processText(String text, int shift) { | ||
| StringBuilder result = new StringBuilder(); |
There was a problem hiding this comment.
При таком способе кодирования объем шифруемого файла ограничен размерами памяти, если бы это было на уровне потоков ввода и вывода то такого ограничения не было бы
| import java.util.List; | ||
|
|
||
| public class BruteForceMethod { | ||
| private static final List<String> COMMON_WORDS = Arrays.asList( |
There was a problem hiding this comment.
Довольно неплохой способ но жёстко привязан к русскому языку. Анализ на уровне статистики опорного текста был бы в целом лучше, но наверное он для четвёртого способа будет наиболее полезен
| @@ -0,0 +1,7 @@ | |||
| package com.javarush.kostromin.constant; | |||
|
|
|||
| public class Alphabet { | |||
There was a problem hiding this comment.
Можно сделать интерфейсом, а если оставлять класс то тут полезен будет приватный конструктор
| import java.io.File; | ||
|
|
||
| public class Constants { | ||
| public static final String TXT_FOLDER = System.getProperty("user.dir") + |
| bruteForceFile(args[0], args[1]); | ||
| break; | ||
| default: | ||
| System.out.println("Unknown command: " + command); |
There was a problem hiding this comment.
Ввод и вывод лучше всего выполнять на уровне взаимодействия с пользователем а не логических конструкциях приложения, это позволяет легко менять тип приложения
| EncryptMethodCaesar encryptor = new EncryptMethodCaesar(); | ||
| String encryptedContent = encryptor.encrypt(contentText, key); | ||
| Files.write(Paths.get(destFile), encryptedContent.getBytes()); | ||
| System.out.println("File encrypted successfully with key: " + key); |
There was a problem hiding this comment.
Тоже самое, тут лучше не выводить явно на консоль а вернуть в виде какого-то результата
| import static com.javarush.kostromin.constant.Constants.TXT_FOLDER; | ||
|
|
||
| public class ConsoleApplication { | ||
| private final MainController controller = new MainController(); |
There was a problem hiding this comment.
Контроллер и сканер лучше создать и передать через конструктор
|
|
||
|
|
||
| private void executeEncryptCommand(Scanner scanner) { | ||
| System.out.println("Enter input file [Push 'Enter' for default: text/text.txt]:"); |
There was a problem hiding this comment.
Да именно на этом уровне ввод вывод наиболее уместен
| } | ||
| } | ||
|
|
||
| private void printMenu() { |
There was a problem hiding this comment.
Класс получился достаточно большим в принципе можно разбить его на функциональные фрагменты
No description provided.