CodeGym/Java Blog/āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹/āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻŋ? āĻ†āĻ¸ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋ (āĻĒāĻ°ā§āĻŦ 1)
John Squirrels
āĻ˛ā§‡āĻ­ā§‡āĻ˛ 41
San Francisco

āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻŋ? āĻ†āĻ¸ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋ (āĻĒāĻ°ā§āĻŦ 1)

āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹ āĻĻāĻ˛ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤
āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ—āĻŖ
āĻ¸āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻļā§āĻ­ āĻĻāĻŋāĻ¨! āĻ…āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ¨ āĻ†āĻŽāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ•āĻ°āĻŋāĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ­āĻŋāĻ‰ āĻ›āĻŋāĻ˛, āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛: āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ•ā§€, āĻ•ā§€ āĻ§āĻ°āĻŖā§‡āĻ° āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ•ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ–ā§āĻŦ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻŋ āĻ†āĻ—ā§‡ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ—āĻ­ā§€āĻ°āĻ­āĻžāĻŦā§‡ āĻĄā§āĻŦ āĻĻāĻŋāĻ‡āĻ¨āĻŋāĨ¤ āĻ¸āĻžāĻ•ā§āĻˇāĻžāĻ¤ā§āĻ•āĻžāĻ°ā§‡āĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ˜āĻžāĻāĻŸāĻžāĻ˜āĻžāĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻ¨āĻŋāĻŽāĻœā§āĻœāĻŋāĻ¤ āĻ•āĻ°āĻŋāĨ¤ āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻŋ?  āĻšāĻ˛ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋ (āĻĒāĻ°ā§āĻŦ ā§§)- ā§§ āĻ†āĻœ āĻ†āĻŽāĻŋ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤ āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻāĻŸāĻŋ āĻĒāĻĄāĻŧāĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ‡ āĻāĻ˛āĻžāĻ•āĻžāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻœā§āĻžāĻžāĻ¨ āĻĻā§‡āĻŦā§‡āĨ¤ āĻšāĻ˛ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ! āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ•ā§€ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ•ā§€ āĻ¤āĻž āĻ¸ā§āĻŽāĻ°āĻŖ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ•āĻļāĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‰āĻĻā§āĻ­ā§‚āĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻŦāĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻœ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻ›āĻŋ āĻ¨āĻž, āĻŦāĻ°āĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ - āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ…āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°, āĻā§āĻāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ, āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻ…āĻ¨ā§ā§ŽāĻĒāĻžāĻĻāĻ¨āĻļā§€āĻ˛ āĻĒāĻ¨ā§āĻĨāĻž āĻ¯āĻž āĻāĻ• āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻ­ā§āĻ˛ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ (āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻāĻĻāĻ“ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ§āĻ°āĻŖā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤:
  1. āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°āĻžāĻ˛ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ¸ - āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻœāĻ¨ āĻ¸ā§āĻĨāĻĒāĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž)āĨ¤
  2. āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ/āĻ¸āĻžāĻ‚āĻ—āĻ āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ¸ — āĻāĻ—ā§āĻ˛āĻŋ āĻšāĻ˛ āĻĒā§āĻ°ā§‹āĻœā§‡āĻ•ā§āĻŸ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° (āĻŦāĻž āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°āĻĻā§‡āĻ° āĻ—ā§āĻ°ā§āĻĒ) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧāĨ¤
  3. āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ¸ - āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛ā§‡ āĻ‰āĻĻā§āĻ­ā§‚āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻ¸ā§€āĻŽāĻž āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻœ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦ āĻ¨āĻžāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻšāĻŦā§‡āĨ¤ āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻ­āĻŋāĻ•āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž-āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŋāĨ¤

1. āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ• āĻĒāĻ•ā§āĻˇāĻžāĻ˜āĻžāĻ¤

āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻĒāĻ•ā§āĻˇāĻžāĻ˜āĻžāĻ¤āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ…āĻ¤āĻŋ-āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤, āĻ¯āĻžāĻ¤ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻŦāĻž āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻŽā§‚āĻ˛āĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•ā§‡ āĻĒāĻ™ā§āĻ—ā§ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ˜āĻŸā§‡ āĻ¯āĻ–āĻ¨ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŸāĻŋ āĻĒāĻ°āĻŋāĻĒā§‚āĻ°ā§āĻŖāĻ¤āĻž āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ā§‡ āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĨ¤ āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻŸāĻŋ āĻšā§‡āĻ¨āĻžāĻļā§‹āĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻšāĻžāĻāĻŸāĻž (āĻāĻ•āĻŸāĻŋ āĻ°āĻžāĻ¨-āĻ…āĻĢ-āĻĻā§āĻ¯-āĻŽāĻŋāĻ˛ āĻ•ā§āĻ˛ā§‹āĻœāĻĄ āĻ˛ā§āĻĒ), āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻļāĻĻ āĻŽāĻĄā§‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ•āĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻšā§‡ āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§€ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›ā§‡āĻ¨: āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻ āĻžā§Ž āĻ•āĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻšāĻ¤ā§āĻ°ā§āĻĨ āĻāĻŦāĻ‚ āĻĒāĻžā§āĻšāĻŽ āĻ…āĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ•āĻ°ā§āĻŽā§€āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸āĻš āĻ—āĻ¤ āĻšāĻžāĻ° āĻŦāĻ›āĻ°ā§‡ āĻ¨āĻŦāĻŦāĻ°ā§āĻˇ āĻāĻŦāĻ‚ āĻ†āĻ¨ā§āĻ¤āĻ°ā§āĻœāĻžāĻ¤āĻŋāĻ• āĻ¨āĻžāĻ°ā§€ āĻĻāĻŋāĻŦāĻ¸ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡? āĻŽā§‹āĻŸāĻ•āĻĨāĻž, āĻāĻŸāĻž' āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻ˛āĻžāĻ‡āĻ¸āĻŋāĻ¸ā§‡āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ˛āĻĄāĻŧāĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŸāĻŋāĻĒāĻ¸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:
  1. āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ—ā§āĻ°āĻšāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻā§€āĻ°ā§āĻ˜āĻŽā§‡āĻ¯āĻŧāĻžāĻĻā§€ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ†āĻ˛ā§‹āĻ•āĻŦāĻ°ā§āĻ¤āĻŋāĻ•āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§āĻĨāĻŦāĻŋāĻ° āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡āĻ° āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  2. āĻ¤ā§āĻšā§āĻ› āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŽāĻ¨ā§‹āĻ¨āĻŋāĻŦā§‡āĻļ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž (āĻ•ā§‡āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻšā§āĻ› āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¨ āĻ¯ā§‡āĻ¨ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻœā§€āĻŦāĻ¨ā§‡āĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤?)
  3. āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§€āĻŽāĻž āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨āĨ¤
  4. āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœ āĻ¨āĻŋāĻ–ā§āĻāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž - āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻž āĻ­āĻžāĻ˛āĨ¤
āĻāĻ–āĻžāĻ¨ā§‡ āĻ–ā§āĻŦ āĻ—āĻ­ā§€āĻ°ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦ āĻ¨āĻžāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ•ā§‹āĻ¨ā§‹ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡, āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°āĻžāĻ˛ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦ, āĻ•āĻžāĻ°āĻŖ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ•āĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡āĻļāĻŋāĨ¤

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. āĻ¸āĻŋāĻ™ā§āĻ—ā§‡āĻ˛āĻŸāĻ¨

āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ™ā§āĻ—āĻ˛āĻŸāĻ¨ āĻšāĻ˛ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ•-āĻĨā§āĻ°ā§‡āĻĄā§‡āĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻĨāĻžāĻ•āĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ‡ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§€ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨? āĻ†āĻ¸ā§āĻ¨ āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ā§‡āĻ° āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–ā§āĻ¨:
  1. āĻ—ā§āĻ˛ā§‹āĻŦāĻžāĻ˛ āĻ¸ā§āĻŸā§‡āĻŸ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻŋ, āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻœāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤ āĻ•ā§‡ āĻŦāĻž āĻ•āĻ–āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¤āĻž āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤ āĻ°āĻžāĻˇā§āĻŸā§āĻ° āĻ†āĻŽāĻ°āĻž āĻ¯āĻž āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ¸ā§‡āĻ°āĻ•āĻŽ āĻ•āĻŋāĻ›ā§ āĻ¨āĻžāĻ“ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻ¸āĻŋāĻ™ā§āĻ—āĻ˛āĻŸāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻ āĻŋāĻ•āĻ¤āĻž āĻāĻŸāĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻ•ā§āĻ°āĻŽ āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ¯ā§‡ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ¨āĻ•āĻļāĻž āĻ—ā§āĻ°ā§āĻ¤āĻ°āĻ­āĻžāĻŦā§‡ āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤

  2. āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ™ā§āĻ—āĻ˛āĻŸāĻ¨ āĻ¸āĻ˛āĻŋāĻĄ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°ā§‡ — āĻāĻ•āĻ• āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§€āĻ¤āĻŋ: āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ•ā§āĻˇ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ¸āĻŋāĻ™ā§āĻ—ā§‡āĻ˛āĻŸāĻ¨ āĻļā§āĻ°ā§‡āĻŖā§€āĻ“ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤

  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);
}
āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻāĻŦāĻ‚ āĻ‡āĻšā§āĻ›āĻž āĻŽā§āĻ˛āĻžāĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡ āĻ¯āĻž āĻ¤āĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡ āĻ…āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻ•ā§āĻ°āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻšāĻ˛ āĻĢāĻžāĻāĻĻ āĻ¯āĻž āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¤ā§€āĻŦā§āĻ° āĻ…āĻ­āĻžāĻŦ, āĻ…āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨āĻ¤āĻž, āĻ…āĻ¨āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻŦāĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ•āĻĻā§‡āĻ° āĻšāĻžāĻĒā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§‹, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ, āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻšāĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ‚āĻļāĻŸāĻŋ āĻļā§‡āĻˇ āĻ•āĻ°ā§‡āĨ¤ āĻšāĻ˛āĻŦā§‡...
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯
  • āĻœāĻ¨āĻĒā§āĻ°āĻŋā§Ÿ
  • āĻ¨āĻ¤ā§āĻ¨
  • āĻĒā§āĻ°āĻžāĻ¨ā§‹
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ˛ā§‡āĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤ā§‹āĻŽāĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸āĻžāĻ‡āĻ¨ āĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡
āĻāĻ‡ āĻĒāĻžāĻ¤āĻžā§Ÿ āĻāĻ–āĻ¨āĻ“ āĻ•ā§‹āĻ¨ā§‹ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¨ā§‡āĻ‡