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