- āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻžāĻ˛ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻ¸ - āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻ¨ āĻ¸ā§āĻĨāĻĒāĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž)āĨ¤
- āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ/āĻ¸āĻžāĻāĻāĻ āĻ¨āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻ¸ â āĻāĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻā§āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻā§ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° (āĻŦāĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ°āĻĻā§āĻ° āĻā§āĻ°ā§āĻĒ) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧāĨ¤
- āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻ¸ - āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
1. āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻĒāĻā§āĻˇāĻžāĻāĻžāĻ¤
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻĒāĻā§āĻˇāĻžāĻāĻžāĻ¤āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ āĻ¤āĻŋ-āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĄāĻŧāĻŋāĻ¤, āĻ¯āĻžāĻ¤ā§ āĻā§āĻ¨āĻ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻŦāĻž āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻŽā§āĻ˛āĻ¤ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§ āĻĒāĻā§āĻā§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻā§ āĻ¯āĻāĻ¨ āĻ˛āĻā§āĻˇā§āĻ¯āĻāĻŋ āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§āĻŖāĻ¤āĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛ā§ āĻāĻā§āĻŦāĻžāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻžāĨ¤ āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻā§āĻ¨āĻžāĻļā§āĻ¨āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻšāĻžāĻāĻāĻž (āĻāĻāĻāĻŋ āĻ°āĻžāĻ¨-āĻ āĻĢ-āĻĻā§āĻ¯-āĻŽāĻŋāĻ˛ āĻā§āĻ˛ā§āĻāĻĄ āĻ˛ā§āĻĒ), āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻŦāĻ āĻŦāĻŋāĻļāĻĻ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻšā§ āĻšāĻ¸ā§āĻ¤āĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻā§āĻ¨: āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ āĻžā§ āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻ¤ā§āĻ°ā§āĻĨ āĻāĻŦāĻ āĻĒāĻā§āĻāĻŽ āĻ āĻā§āĻˇāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻžāĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻ¨ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻš āĻāĻ¤ āĻāĻžāĻ° āĻŦāĻāĻ°ā§ āĻ¨āĻŦāĻŦāĻ°ā§āĻˇ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ¤āĻŋāĻ āĻ¨āĻžāĻ°ā§ āĻĻāĻŋāĻŦāĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§? āĻŽā§āĻāĻāĻĨāĻž, āĻāĻāĻž' āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻ˛āĻžāĻāĻ¸āĻŋāĻ¸ā§āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻ˛āĻĄāĻŧāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻŋāĻĒāĻ¸ āĻ°āĻ¯āĻŧā§āĻā§:- āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻāĻŽā§āĻ¯āĻŧāĻžāĻĻā§ āĻ˛āĻā§āĻˇā§āĻ¯āĻā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻāĻŦāĻ°ā§āĻ¤āĻŋāĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻĨāĻŦāĻŋāĻ° āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻā§āĻˇā§āĻ¯ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
- āĻ¤ā§āĻā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽāĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž (āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻā§āĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¨ āĻ¯ā§āĻ¨ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻŦāĻ¨ā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤?)
- āĻāĻāĻāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
- āĻāĻāĻāĻŋ āĻāĻžāĻ āĻ¨āĻŋāĻā§āĻāĻ¤āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž - āĻāĻāĻŋ āĻā§āĻŦ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤
2. āĻāĻļā§āĻŦāĻ° āĻāĻĒāĻ¤ā§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻāĻĄ āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻāĻ¨āĻ¤ā§āĻŦ āĻāĻŦāĻ āĻŦā§āĻšā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻŦā§āĻˇāĻŽā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻĄā§āĻāĻž (āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻā§āĻ°ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§) āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ¨:public class SomeUserGodObject {
private static final String FIND_ALL_USERS_EN = "SELECT id, email, phone, first_name_en, access_counter, middle_name_en, last_name_en, created_date FROM users;
private static final String FIND_BY_ID = "SELECT id, email, phone, first_name_en, access_counter, middle_name_en, last_name_en, created_date FROM users WHERE id = ?";
private static final String FIND_ALL_CUSTOMERS = "SELECT id, u.email, u.phone, u.first_name_en, u.middle_name_en, u.last_name_en, u.created_date" +
" WHERE u.id IN (SELECT up.user_id FROM user_permissions up WHERE up.permission_id = ?)";
private static final String FIND_BY_EMAIL = "SELECT id, email, phone, first_name_en, access_counter, middle_name_en, last_name_en, created_dateFROM users WHERE email = ?";
private static final String LIMIT_OFFSET = " LIMIT ? OFFSET ?";
private static final String ORDER = " ORDER BY ISNULL(last_name_en), last_name_en, ISNULL(first_name_en), first_name_en, ISNULL(last_name_ru), " +
"last_name_ru, ISNULL(first_name_ru), first_name_ru";
private static final String CREATE_USER_EN = "INSERT INTO users(id, phone, email, first_name_en, middle_name_en, last_name_en, created_date) " +
"VALUES (?, ?, ?, ?, ?, ?, ?)";
private static final String FIND_ID_BY_LANG_CODE = "SELECT id FROM languages WHERE lang_code = ?";
........
private final JdbcTemplate jdbcTemplate;
private Map<String, String> firstName;
private Map<String, String> middleName;
private Map<String, String> lastName;
private List<Long> permission;
........
@Override
public List<User> findAllEnCustomers(Long permissionId) {
return jdbcTemplate.query( FIND_ALL_CUSTOMERS + ORDER, userRowMapper(), permissionId);
}
@Override
public List<User> findAllEn() {
return jdbcTemplate.query(FIND_ALL_USERS_EN + ORDER, userRowMapper());
}
@Override
public Optional<List<User>> findAllEnByEmail(String email) {
var query = FIND_ALL_USERS_EN + FIND_BY_EMAIL + ORDER;
return Optional.ofNullable(jdbcTemplate.query(query, userRowMapper(), email));
}
.............
private List<User> findAllWithoutPageEn(Long permissionId, Type type) {
switch (type) {
case USERS:
return findAllEnUsers(permissionId);
case CUSTOMERS:
return findAllEnCustomers(permissionId);
default:
return findAllEn();
}
}
..............âĻ
private RowMapper<User> userRowMapperEn() {
return (rs, rowNum) ->
User.builder()
.id(rs.getLong("id"))
.email(rs.getString("email"))
.accessFailed(rs.getInt("access_counter"))
.createdDate(rs.getObject("created_date", LocalDateTime.class))
.firstName(rs.getString("first_name_en"))
.middleName(rs.getString("middle_name_en"))
.lastName(rs.getString("last_name_en"))
.phone(rs.getString("phone"))
.build();
}
}
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻļā§āĻ°ā§āĻŖā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ āĻ¯āĻžāĻ°āĻž āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°ā§āĨ¤ āĻāĻ¤ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻ¯āĻŧā§āĻ°āĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž findAllWithoutPageEn āĻ¸āĻŽā§āĻŽā§āĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ āĻĻā§āĻāĻŋ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻļā§āĻŦāĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻŦāĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻŦāĻŋāĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻĄ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻāĻ°āĻž āĻāĻāĻŋ āĻ¸āĻā§āĻā§ āĻāĻāĻžāĻāĻŋāĻā§āĻĄāĻŧāĻŋ āĻāĻā§. āĻ
āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻāĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻļāĻā§āĻ¤āĻāĻžāĻŦā§ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻĄ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻŦāĻ āĻāĻ āĻŋāĻ¨ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻĄāĻāĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻāĻļā§āĻŦāĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻ āĻā§āĻ˛āĻžāĻ¸ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
public class UserDaoImpl {
private static final String FIND_ALL_USERS_EN = "SELECT id, email, phone, first_name_en, access_counter, middle_name_en, last_name_en, created_date FROM users;
private static final String FIND_BY_ID = "SELECT id, email, phone, first_name_en, access_counter, middle_name_en, last_name_en, created_date FROM users WHERE id = ?";
........
private final JdbcTemplate jdbcTemplate;
........
@Override
public List<User> findAllEnCustomers(Long permissionId) {
return jdbcTemplate.query(FIND_ALL_CUSTOMERS + ORDER, userRowMapper(), permissionId);
}
@Override
public List<User> findAllEn() {
return jdbcTemplate.query(FIND_ALL_USERS_EN + ORDER, userRowMapper());
}
........
}
āĻĄā§āĻāĻž āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸:
public class UserInfo {
private Map<String, String> firstName;
âĻ..
public Map<String, String> getFirstName() {
return firstName;
}
public void setFirstName(Map<String, String> firstName) {
this.firstName = firstName;
}
....
āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¸āĻ°āĻžāĻ¨ā§ āĻāĻ°āĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§:
private List<User> findAllWithoutPageEn(Long permissionId, Type type) {
switch (type) {
case USERS:
return findAllEnUsers(permissionId);
case CUSTOMERS:
return findAllEnCustomers(permissionId);
default:
return findAllEn();
}
}
3. āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ āĻšāĻ˛ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻāĻ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻāĻāĻāĻŋ āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨? āĻāĻ¸ā§āĻ¨ āĻāĻ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨:-
āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¸ā§āĻā§āĻ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤ āĻā§ āĻŦāĻž āĻāĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻā§ āĻ¤āĻž āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤ āĻ°āĻžāĻˇā§āĻā§āĻ° āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¸ā§āĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻāĻāĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻā§āĻ°āĻŽ āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛ āĻāĻŦāĻ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¨āĻāĻļāĻž āĻā§āĻ°ā§āĻ¤āĻ°āĻāĻžāĻŦā§ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤
-
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ āĻ¸āĻ˛āĻŋāĻĄ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ˛āĻā§āĻāĻ¨ āĻāĻ°ā§ â āĻāĻāĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§āĻ¤āĻŋ: āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻā§āĻˇ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤
-
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŽā§āĻĨāĻĄ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻŦāĻ°āĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ getInstance() āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻļāĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ â āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻŋāĻ¯āĻŧā§ āĻā§āĻā§āĻ¤āĻŋ āĻ¯āĻĨā§āĻˇā§āĻ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻāĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨āĻā§ āĻāĻāĻāĻŋ āĻŽāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻŦā§āĨ¤
āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ āĻāĻžāĻĒāĻ˛āĻŋāĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻāĻžāĻĒāĻ˛āĻŋāĻ āĻāĻ° āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻž āĻāĻ° āĻāĻŋāĻā§āĻ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻāĻžāĻ°āĻāĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻŽā§āĻāĻŦ (āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ)āĨ¤
āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ¯āĻŧ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦāĻĄāĻŧ āĻŦāĻŋāĻĒāĻĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¸ā§āĻŽāĻ¯āĻŧāĻāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ¨ āĻāĻā§. āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻ° āĻāĻāĻāĻ¸āĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋ: āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¤ā§āĻ°āĻŋāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻā§āĻ¤āĻŋāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻāĻ¸āĻ˛ā§ "āĻ¸ā§āĻā§āĻ°āĻ¯āĻŧā§āĻĄā§āĻ° āĻāĻžāĻ°āĻāĻžāĻ¨āĻž"āĨ¤
āĻ āĻ¨ā§āĻ āĻ āĻ¨ā§āĻ¤āĻšā§āĻ¨ āĻāĻŦāĻ āĻ āĻŽā§āĻŽāĻžāĻāĻ¸āĻŋāĻ¤ āĻŦāĻŋāĻ¤āĻ°ā§āĻ āĻāĻāĻ¨ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ°āĻžāĻ āĻšāĻ¯āĻŧ. āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻāĻ˛āĻāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻĻā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻˇ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻŦ â āĻĒā§āĻ˛ā§āĻāĻžāĻ°āĻāĻŋāĻ¸ā§āĻāĨ¤
4. Poltergeist
āĻāĻāĻāĻŋ āĻĒā§āĻ˛ā§āĻāĻžāĻ°āĻāĻŋāĻ¸ā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ āĻ°ā§āĻĨāĻšā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻā§ āĻāĻĄāĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻ āĻ¨ā§āĻ¯ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻŦāĻž āĻā§āĻŦāĻ˛ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸ā§āĻ¤āĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻ¸ā§āĻŦāĻ˛ā§āĻĒāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻā§āĻā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§, āĻ°āĻžāĻˇā§āĻā§āĻ° āĻŦāĻ°ā§āĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯, āĻāĻ°āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤public class UserManager {
private UserService service;
public UserManager(UserService userService) {
service = userService;
}
User createUser(User user) {
return service.create(user);
}
Long findAllUsers(){
return service.findAll().size();
}
String findEmailById(Long id) {
return service.findById(id).getEmail();}
User findUserByEmail(String email) {
return service.findByEmail(email);
}
User deleteUserById(Long id) {
return service.delete(id);
}
}
āĻā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¯āĻž āĻā§āĻŦāĻ˛ āĻāĻāĻāĻ¨ āĻŽāĻ§ā§āĻ¯āĻ¸ā§āĻĨāĻ¤āĻžāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯ āĻāĻžāĻāĻā§ āĻ¤āĻžāĻ° āĻāĻžāĻ āĻ
āĻ°ā§āĻĒāĻŖ āĻāĻ°ā§? āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻŽā§āĻ˛ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻŋāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻā§āĻ°āĻšā§āĻ° (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§), āĻ
āĻ°ā§āĻĨāĻžā§ āĻŦāĻŋāĻāĻžāĻļ-āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĨ¤
5. āĻšāĻžāĻ°ā§āĻĄ āĻā§āĻĄāĻŋāĻ
āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¯āĻŧāĻžāĻ¨āĻ āĻļāĻŦā§āĻĻā§ āĻĒā§āĻāĻā§āĻāĻŋ: āĻāĻ āĻŋāĻ¨ āĻā§āĻĄāĻŋāĻāĨ¤ āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻ¸āĻžāĻĨā§ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻāĻŦāĻĻā§āĻ§āĨ¤ āĻāĻāĻŋ āĻā§āĻĄāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻāĻāĻŋāĻ˛ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻŽā§āĻ¯āĻžāĻāĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻāĻĄāĻŧāĻŋāĻ¤ (āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĄāĻŧāĻŋāĻ¤)āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ:public Connection buildConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/someDb?characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC", "user01", "12345qwert");
return connection;
}
āĻŦā§āĻ¯āĻžāĻĨāĻž, āĻ¤āĻžāĻ āĻ¨āĻž? āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻšāĻžāĻ°ā§āĻĄ āĻā§āĻĄ. āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻĄāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° MySQL āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻŦ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§:
spring:
datasource:
jdbc-url:jdbc:mysql://localhost:3306/someDb?characterEncoding=UTF-8
driver-class-name: com.mysql.cj.jdbc.Driver
username: user01
password: 12345qwert
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻ˛ āĻ§ā§āĻ°ā§āĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤
6. āĻ¨ā§āĻāĻž āĻ¨ā§āĻāĻ°
āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻˇāĻŋāĻ¤ā§, āĻāĻāĻāĻŋ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ āĻāĻļ āĻ°āĻžāĻāĻž āĻ¯āĻž āĻāĻŋāĻā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻŦāĻž āĻ°āĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻā§āĻĄā§āĻ° āĻāĻŋāĻā§ āĻ āĻāĻļ āĻāĻĒāĻ¨āĻžāĻ° āĻšāĻ āĻžā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§ "āĻāĻŦāĻŋāĻˇā§āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯" āĻ°āĻžāĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻŽā§āĻ˛āĻ¤, āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄāĻā§ āĻĄāĻžāĻ¸ā§āĻāĻŦāĻŋāĻ¨ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ:public User update(Long id, User request) {
User user = mergeUser(findById(id), request);
return userDAO.update(user);
}
private User mergeUser(User findUser, User requestUser) {
return new User(
findUser.getId(),
requestUser.getEmail() != null ? requestUser.getEmail() : findUser.getEmail(),
requestUser.getFirstName() != null ? requestUser.getFirstName() : findUser.getFirstNameRu(),
requestUser.getMiddleName() != null ? requestUser.getMiddleName() : findUser.getMiddleNameRu(),
requestUser.getLastName() != null ? requestUser.getLastName() : findUser.getLastNameEn(),
requestUser.getPhone() != null ? requestUser.getPhone() : findUser.getPhone());
}
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĄā§āĻāĻžāĻā§ āĻŽā§āĻĨāĻĄā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (āĻ¯āĻĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻžāĻ˛ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ) . āĻ¤āĻžāĻ°āĻĒāĻ° āĻ§āĻ°ā§āĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻ°ā§āĻāĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻ¨āĻžāĻ˛ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĨāĻžāĻāĻ˛ā§āĻ, āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ:
public User update(Long id, User request) {
return userDAO.update(user);
}
āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ mergeUser āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻāĻāĻ¨āĻ āĻšāĻŦā§ â āĻ¯āĻĻāĻŋ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ (āĻŦāĻž āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ§āĻžāĻ°āĻŖāĻž) āĻā§āĻ¨ā§ āĻĻāĻŋāĻ¨ āĻāĻžāĻā§ āĻāĻ¸āĻ¤ā§ āĻĒāĻžāĻ°ā§? āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻĄ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻŋāĻ˛ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§ āĻāĻŦāĻ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ° āĻ¸ā§āĻāĻ¨āĻž āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽā§āĻ˛āĻ¤ āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯ āĻ¨ā§āĻāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯ā§ "āĻŽā§āĻ¤ āĻā§āĻāĻ°āĻž" āĻ¸āĻš āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻā§āĻĄ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻ
āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛ā§ āĻ¯āĻžāĻŦā§āĻ¨ āĻ¤āĻāĻ¨ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨ āĻšāĻŦā§āĨ¤ āĻŦā§āĻ āĻ
ā§āĻ¯āĻžāĻā§āĻāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻā§āĻĄāĻāĻŋ āĻ°āĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻāĻ°āĻž, āĻ
āĻ°ā§āĻĨāĻžā§ āĻā§āĻĄā§āĻ° āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž (āĻšā§āĻĻāĻ¯āĻŧāĻŦāĻŋāĻĻāĻžāĻ°āĻ, āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻŋ)āĨ¤ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§, āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ
ā§āĻ¯āĻžāĻā§āĻāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻĒāĻ°āĻŋāĻĒāĻžāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯)āĨ¤
7. āĻ āĻŦāĻā§āĻā§āĻ āĻ¸ā§āĻ¸āĻĒā§āĻ˛
āĻāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§, āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āĻ˛ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§ āĨ¤ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āĻ˛ (āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻĒā§āĻ˛) āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻ¨āĻļā§āĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ , āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĨ¤ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻ āĻĒā§āĻ˛ āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻ§ā§āĻŦāĻāĻ¸ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻāĻŋ āĻĒā§āĻ˛ā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻžāĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ¯āĻāĻ¨āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻŦāĻ āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§ āĻ¯āĻž āĻāĻ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§:class ReusablePool {
private static ReusablePool pool;
private List<Resource> list = new LinkedList<>();
private ReusablePool() {
for (int i = 0; i < 3; i++)
list.add(new Resource());
}
public static ReusablePool getInstance() {
if (pool == null) {
pool = new ReusablePool();
}
return pool;
}
public Resource acquireResource() {
if (list.size() == 0) {
return new Resource();
} else {
Resource r = list.get(0);
list.remove(r);
return r;
}
}
public void releaseResource(Resource r) {
list.add(r);
}
}
āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŋāĻā§āĻā§āĻ˛āĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨/āĻ
ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ , āĻ
āĻ°ā§āĻĨāĻžā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ Resource
āĻŦāĻ¸ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° 4āĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ˛ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻžāĻ¨, āĻāĻāĻŋ āĻĒā§āĻ˛ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ (āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻž āĻĨāĻžāĻā§, āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§)āĨ¤ āĻāĻŦāĻ āĻļā§āĻˇā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋāĻā§ āĻĒāĻŋāĻāĻ¨ā§ āĻ°āĻžāĻāĻžāĻ° āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻŽā§āĻĒāĻĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
public class Resource {
private Map<String, String> patterns;
public Resource() {
patterns = new HashMap<>();
patterns.put("proxy", "https://en.wikipedia.org/wiki/Proxy_pattern");
patterns.put("bridge", "https://en.wikipedia.org/wiki/Bridge_pattern");
patterns.put("facade", "https://en.wikipedia.org/wiki/Facade_pattern");
patterns.put("builder", "https://en.wikipedia.org/wiki/Builder_pattern");
}
public Map<String, String> getPatterns() {
return patterns;
}
public void setPatterns(Map<String, String> patterns) {
this.patterns = patterns;
}
}
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¨āĻāĻļāĻžāĻ° āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻāĻŦāĻ āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻāĻāĻāĻŋāĻĒāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ˛ā§āĻ¨ āĻāĻ āĻ¨āĻāĻ°ā§ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨:
class SomeMain {
public static void main(String[] args) {
ReusablePool pool = ReusablePool.getInstance();
Resource firstResource = pool.acquireResource();
Map<String, String> firstPatterns = firstResource.getPatterns();
// use our map somehow...
pool.releaseResource(firstResource);
Resource secondResource = pool.acquireResource();
Map<String, String> secondPatterns = firstResource.getPatterns();
// use our map somehow...
pool.releaseResource(secondResource);
Resource thirdResource = pool.acquireResource();
Map<String, String> thirdPatterns = firstResource.getPatterns();
// use our map somehow...
pool.releaseResource(thirdResource);
}
}
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻ¯āĻĨā§āĻˇā§āĻ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°: āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒāĻžāĻ, āĻĒā§āĻ˛ āĻĨā§āĻā§ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒāĻžāĻ, āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ
āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻŽā§āĻ¯āĻžāĻĒ āĻĒāĻžāĻ, āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻā§ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĒā§āĻ˛āĻāĻŋāĻ¤ā§ āĻāĻ°āĻ āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŋāĻā§ āĻ°āĻžāĻāĻŋāĨ¤ āĻāĻ¯āĻŧā§āĻ˛āĻž, āĻāĻāĻŋ āĻšāĻ˛ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒā§āĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻāĻŋāĻ˛āĻžāĻŽ, āĻ¤āĻžāĻ āĻ¨āĻž? āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ:
Resource fourthResource = pool.acquireResource();
Map<String, String> fourthPatterns = firstResource.getPatterns();
// use our map somehow...
fourthPatterns.clear();
firstPatterns.put("first","blablabla");
firstPatterns.put("second","blablabla");
firstPatterns.put("third","blablabla");
firstPatterns.put("fourth","blablabla");
pool.releaseResource(fourthResource);
āĻāĻāĻžāĻ¨ā§, āĻāĻŦāĻžāĻ°, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒāĻžāĻ, āĻāĻŽāĻ°āĻž āĻāĻ° āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻĒāĻžāĻ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻāĻ°āĻŋāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋāĻā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒā§āĻ˛ā§ āĻĢā§āĻ°āĻ¤ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻāĻŋ āĻ¸āĻžāĻĢ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĻā§āĻˇāĻŋāĻ¤ āĻĄā§āĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻĒāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ
āĻŦāĻā§āĻā§āĻāĻāĻŋāĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻāĻāĻŋ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒā§āĻ˛ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦāĻŋāĻŦāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĒā§āĻ˛ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛ āĻŦāĻž āĻ
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĨā§āĻā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻāĻļāĻžāĻāĻŋāĻā§ āĻ
āĻŦāĻā§āĻā§āĻ āĻ¸ā§āĻ¸āĻĒā§āĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻŋ āĻā§āĻ¨ āĻŽāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ? āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨ā§āĻ¸āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋāĻā§ āĻ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
public Resource() {
patterns = new HashMap<>();
patterns.put("proxy", "https://en.wikipedia.org/wiki/Proxy_pattern");
patterns.put("bridge", "https://en.wikipedia.org/wiki/Bridge_pattern");
patterns.put("facade", "https://en.wikipedia.org/wiki/Facade_pattern");
patterns.put("builder", "https://en.wikipedia.org/wiki/Builder_pattern");
patterns = Collections.unmodifiableMap(patterns);
}
āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻāĻŦāĻ āĻāĻā§āĻāĻž āĻŽā§āĻ˛āĻžāĻ¨ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻ¯āĻž āĻ¤āĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻ
āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻ
ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻĢāĻžāĻāĻĻ āĻ¯āĻž āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻāĻ¨ āĻāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¤ā§āĻŦā§āĻ° āĻ
āĻāĻžāĻŦ, āĻ
āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨āĻ¤āĻž, āĻ
āĻ¨āĻāĻŋāĻā§āĻāĻ¤āĻž āĻŦāĻž āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻāĻĻā§āĻ° āĻāĻžāĻĒā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ, āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻāĻļāĻāĻŋ āĻļā§āĻˇ āĻāĻ°ā§āĨ¤ āĻāĻ˛āĻŦā§...