принципы ООП или код не должен повторяться

124
02 мая 2019, 19:20

Сейчас изучаю Java и усваиваю главные принципы ООП, хочу избежать повторяющегося однотипного кода. Ниже я привел простой пример считывания данных с поля по нажатию кнопки, и указания ему (полю) неких правил. Эти правила могут повторятся для множества полей, и я не понимаю как можно создать некий класс с проверкой для любого поля, что бы в дальнейшем не прописывать одно и то же, а просто вызвать метод, где естественно заранее все правила будут указаны. Я конечно могу создать класс, и начать прописывать правила, но какому объекту их передавать или как это делается, ведь я не могу просто в методе сразу прописывать getText().trim().contains("@")и тому подобное. Помогите пожалуйста разобраться заблудшей душе.

 registrationButton.setOnAction(event -> {
        String passwordText = passwordRegField.getText().trim();
        String mailText = mailRegField.getText().trim();
        if (!passwordText.equals("") && !mailText.equals("") && mailText.contains("@") && mailText.contains(".")) {
            signUpNewUser();
        } else System.out.println("введите данные");
    });
Answer 1

Вызываете метод и передаете в него значения, а уже в самом методе они обрабатываются:

 registrationButton.setOnAction(event -> {
            String passwordText = passwordRegField.getText().trim();
            String mailText = mailRegField.getText().trim();
            your_method(passwordText, mailText );
        });
void your_method(String passwordText, String mailText) {
        if (!passwordText.equals("") && !mailText.equals("") &&
                mailText.contains("@") && mailText.contains(".")) {
            signUpNewUser();
        } else {
            System.out.println("введите данные");
        }

    }
Answer 2

На Вашем месте я бы никуда не выносил методы, которые проверяют на то, что в строке что-то есть, а вот если логика сложнее, то использовал бы либо метод, либо если эта валидация применима ко многим классам, то вынес бы эту проверку в какой-нибудь утилитный класс в статический метод. И для проверки email использовал бы какое-нибудь подходящее регулярное выражение. public static boolean isValidEmail(final String value) { return value != null && value.matches(EMAIL_REGEXP); }

READ ALSO
Прикрепление json-файла из body для запроса

Прикрепление json-файла из body для запроса

Необходимо сделать много различных post запросов и хотелось бы заранее считывать изjson файла информацию для добавления в тело запроса

143
как зафиксировать строки и столбцы?

как зафиксировать строки и столбцы?

Есть div main, содержащий в себе div targetКак сделать при помощи flexbox так чтобы при изменении масштаба блоки target находились на своём месте?

135
Как сделать маску в css?

Как сделать маску в css?

как вот сделать вот такое при помощи css а именно цифру

152
three js Не работают тени

three js Не работают тени

Пытаюсь задать тени пишу эту строчку:

161