"āĻšāĻžāĻ‡, āĻ…ā§āĻ¯āĻžāĻŽāĻŋāĻ—ā§‹!"

"āĻšāĻžāĻ‡, āĻŦāĻŋāĻ˛āĻžāĻŦā§‹!"

"āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻœāĻ•ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻŋāĻ›āĻ• āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻšāĻŦā§‡ āĻ¨āĻž - āĻāĻŸāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽāĻšāĻžāĻ•āĻžāĻŦā§āĻ¯ āĻšāĻŦā§‡āĨ¤"

"āĻ†āĻœ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻŋāĨ¤ "

"āĻ•ā§āĻ˛! āĻ†āĻŽāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻļā§āĻ¨ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻŋ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž!"

"āĻ…āĻ­āĻŋāĻœā§āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§‡āĻ° āĻ…āĻ¨ā§‡āĻ• āĻ•ā§āĻ˛āĻžāĻ¸ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ‡ āĻ•āĻžāĻœā§‡āĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻ āĻŋāĻ¨ āĻ…āĻ‚āĻļ āĻšāĻ˛ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤"

"āĻ¤āĻžāĻ°āĻž āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ¤āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ­āĻžāĻ˛, āĻ…āĻ¨ā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ°āĻžāĻĒāĨ¤"

"āĻ–āĻžāĻ°āĻžāĻĒ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ¤āĻžāĻ°āĻž āĻ–āĻžāĻ°āĻžāĻĒāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡, āĻ…āĻ¨ā§‡āĻ• āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻāĻŦāĻ‚ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĨ¤"

"āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¸āĻžāĻĻā§ƒāĻļā§āĻ¯ āĻ†āĻ›ā§‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨?"

"āĻ†āĻ¸ā§āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĄāĻŧāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ›ā§‡āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ•ā§€ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻŦā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ­āĻžāĻŦāĻ›ā§‡āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĻā§‡āĻ¯āĻŧāĻžāĻ˛, āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ›āĻžāĻĻ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¤āĻ˛ āĻ›āĻžāĻĻ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĄāĻŧāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ¨ā§‡āĻ‡āĨ¤ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ˜āĻ° āĻĢāĻžāĻŸāĻŦā§‡, āĻāĻŦāĻ‚ āĻ›āĻžāĻĻ āĻĢā§āĻŸā§‹ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ°āĻžāĻĒ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤"

"āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĻ­āĻžāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‰āĻ¨ā§āĻĄā§‡āĻļāĻ¨, āĻĻā§‡āĻ¯āĻŧāĻžāĻ˛ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ—ā§‡āĻŦāĻ˛ āĻ›āĻžāĻĻ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻĄāĻŧāĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻŦā§‡āĨ¤ āĻ­āĻžāĻ°ā§€ āĻ¤ā§āĻˇāĻžāĻ°āĻĒāĻžāĻ¤ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¤ā§āĻˇāĻžāĻ° āĻ›āĻžāĻĻ āĻĨā§‡āĻ•ā§‡ āĻĒāĻŋāĻ›āĻ˛ā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ āĻŽāĻžāĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§‡āĻ° āĻ­āĻ¯āĻŧā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ¨ā§‡āĻ‡, āĻ•āĻžāĻ°āĻŖ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻžāĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ•ā§‡ āĻ­āĻžāĻ˛ā§‹ āĻŦāĻ˛āĻŦāĨ¤"

"āĻ†āĻŽāĻŋ āĻĻā§‡āĻ–āĻ›āĻŋāĨ¤ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤"

"āĻ āĻŋāĻ• āĻ†āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻŋ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦāĨ¤"

"āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡, āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻ–āĻ¨ āĻ–āĻžāĻ°āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋ-āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤"

"āĻāĻ•āĻŸāĻŋ āĻ¨āĻ•āĻļāĻžāĻ° āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ°ā§‡āĻ° āĻŽāĻ¤āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨āĻŸāĻŋ āĻ•āĻ–āĻ¨āĻ“ āĻļā§āĻ¨ā§‡āĻ¨āĻ¨āĻŋ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻŦā§‹āĻāĻž āĻ•āĻ āĻŋāĻ¨āĨ¤"

" āĻĒā§āĻ°āĻĨāĻŽ āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻšāĻ˛ āĻ¸ā§ƒāĻœāĻ¨āĻļā§€āĻ˛ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§ƒāĻˇā§āĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤"

"āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻāĻ¤ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻŋ?"

"āĻ¯ā§‡āĻŽāĻ¨ āĻāĻŸāĻŋ āĻ˜āĻŸā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ…āĻ¨ā§āĻŦā§‡āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋ āĻ āĻŋāĻ• āĻ¤āĻžāĻ‡āĨ¤"

āĻ¸āĻŋāĻ™ā§āĻ—ā§‡āĻ˛āĻŸāĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĨ¤

āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨: āĻ¸āĻŋāĻ™ā§āĻ—ā§‡āĻ˛āĻŸāĻ¨, āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ, āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ āĻŽā§‡āĻĨāĻĄ, āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ- 1

"āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡, āĻ•āĻŋāĻ›ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ•āĻĒāĻŋ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•āĻ¨āĻ¸ā§‹āĻ˛, āĻ˛āĻ—āĻžāĻ°, āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ•āĻžāĻ°ā§€, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤"

" āĻ–āĻžāĻ°āĻžāĻĒ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨: āĻ•ā§‹āĻ¨ā§‹ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž - āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŦ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ•āĨ¤"

" āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨:  āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋāĻ¤ā§‡ āĻŦāĻžāĻ§āĻž āĻĻāĻŋāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:"

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
class Sun
{
 private static Sun instance;
 public static Sun getInstance()
 {
  if (instance == null)
  instance = new Sun();

  return instance;
 }

 private Sun()
 {
 }
}
āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
Sun sun = Sun.getInstance();

"āĻ‡āĻšāĻž āĻ¸āĻšāĻœ."

"āĻĒā§āĻ°āĻĨāĻŽ, āĻ†āĻŽāĻ°āĻž āĻ•āĻ¨āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸāĻ°āĻ•ā§‡ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ‡āĨ¤ āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ° āĻĨā§‡āĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻ¸āĻ°ā§āĻŦāĻ¤ā§āĻ° āĻ¸āĻžāĻ¨ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤"

"āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ, āĻāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° getInstance() āĻŽā§‡āĻĨāĻĄ āĻ•āĻ˛ āĻ•āĻ°āĻ˛ā§‡āĻ‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻŸāĻŋāĻ‡ āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ¨ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ†āĻ›ā§‡āĨ¤"

"āĻ†āĻŽāĻŋ āĻĻā§‡āĻ–āĻŋ."

"āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡āĻ¨, "āĻāĻ–āĻ¨, āĻ†āĻŽāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻŦ?", āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦāĻ˛ā§‡, "āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - āĻāĻŸāĻŋ āĻ¸ā§‡āĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋāĨ¤""

"āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻāĻ–āĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛ā§‹ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤"

"āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡āĻ“ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨  āĨ¤"

āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻžāĻ° āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĨ¤

āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨: āĻ¸āĻŋāĻ™ā§āĻ—āĻ˛āĻŸāĻ¨, āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ, āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ āĻŽā§‡āĻĨāĻĄ, āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ - 2

"āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¯āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻ°āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻŦā§‡āĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻŦāĻ•ā§āĻ˛āĻžāĻ¸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ—ā§‡āĻŽ āĻ•ā§āĻ¯āĻžāĻ°ā§‡āĻ•ā§āĻŸāĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ¸ (āĻ—ā§‡āĻŽāĻĒāĻžāĻ°āĻ¸āĻ¨) āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻšāĻ°āĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¯āĻž āĻāĻŸāĻŋ āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ¸ā§‚āĻ¤ā§āĻ°ā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤"

"āĻ†āĻ¸ā§āĻ¨ āĻŦāĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ†āĻ›ā§‡:"

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
abstract class GamePerson
{
}

class Warrior extends GamePerson
{
}

class Mag extends GamePerson
{
}

class Troll extends GamePerson
{
}

class Elf extends GamePerson
{
}

"āĻĒā§āĻ°āĻļā§āĻ¨ āĻšāĻ˛ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻŋāĨ¤"

"āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻ—ā§‡āĻŽāĻŸāĻŋāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ• āĻĄāĻœāĻ¨ āĻ¤āĻ˛ā§‹āĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ‚ āĻĸāĻžāĻ˛, āĻļāĻ¤ āĻļāĻ¤ āĻœāĻžāĻĻā§ āĻŽāĻ¨ā§āĻ¤ā§āĻ° āĻāĻŦāĻ‚ āĻšāĻžāĻœāĻžāĻ° āĻšāĻžāĻœāĻžāĻ° āĻĻāĻžāĻ¨āĻŦ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ā§ˇ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžā§ˇ "

" āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°ā§‡āĨ¤"

"āĻĒā§āĻ°āĻĨāĻŽā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ enum āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤"

"āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ(āĻ—ā§āĻ˛āĻŋ) āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ enum āĻŽāĻžāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻŦāĻ¸ā§āĻ¤ā§(āĻ—ā§āĻ˛āĻŋ) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤"

"āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:"

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
public enum PersonType
{
 UNKNOWN,
 WARRIOR,
 MAG,
 TROLL,
 ELF,
}

public class PersonFactory
{
 public static GamePerson createPerson(PersonType personType)
 {
  switch(personType)
  {
   WARRIOR:
   return new Warrior();
   MAG:
   return new Mag();
   TROLL:
   return new Troll();
   ELF:
   return new Elf();
   default:
   throw new GameException();
  }
 }
}
āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
GamePerson person = PersonFactory.createPerson(PersonType.MAG);

"āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻ†āĻŽāĻ°āĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ?"

"āĻšā§āĻ¯āĻžāĻāĨ¤"

"āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻ•āĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡?"

"āĻĒā§āĻ°āĻĨāĻŽ, āĻāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡, āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĄā§‡āĻŸāĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤"

"āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ, āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ¤āĻŸāĻž āĻšāĻžāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻāĻ¨āĻžāĻŽ āĻŽāĻžāĻ¨ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤"

"āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ, enum āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻžāĨ¤ āĻ…āĻ¨ā§‡āĻ• āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻ•ā§āĻˇāĻ° āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸āĨ¤"

"āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ— āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧāĻžāĻ°āĻŋāĻ¯āĻŧāĻ° āĻāĻ•āĻŸāĻŋ āĻļā§āĻ°ā§‡āĻŖā§€ (āĻŽāĻžāĻ¨āĻŦ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻļāĻ•ā§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻœāĻžāĻĻā§ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ (āĻ•āĻ¨ā§āĻ¸āĻŸā§āĻ°āĻžāĻ•ā§āĻŸāĻ° āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ) āĻ¸āĻšāĨ¤"

"āĻāĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ•ā§‡āĻŽāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻāĻ–āĻžāĻ¨ā§‡ (āĻ¸ā§āĻŦāĻšā§āĻ›āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻŋ āĻ…āĻ¨ā§āĻ§āĻ•āĻžāĻ° āĻāĻ˛āĻ­āĻ¸āĻ“ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›āĻŋ):"

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
public enum PersonType
{
 UNKNOWN,
 WARRIOR,
 MAG,
 TROLL,
 ELF,
 DARK_ELF
}

public class PersonFactory
{
 public static GamePerson createPerson(PersonType personType)
 {
  switch(personType)
  {
   WARRIOR:
   return new Human(10, 0); // Strength, magic
   MAG:
   return new Human(0, 10); // Strength, magic
   TROLL:
   OGR:
   return new Troll();
   ELF:
   return new Elf(true); // true – good, false – evil
   DARK_ELF:
   return new Elf(false); // true – good, false – evil
   default:
   throw new GameException();
  }
 }
}
āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
GamePerson person = PersonFactory.createPerson(PersonType.MAG);

"āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ†āĻŽāĻ°āĻž āĻ›āĻ¯āĻŧāĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻāĻŸāĻŋ āĻ–ā§āĻŦāĻ‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤ āĻ¤āĻžāĻ›āĻžāĻĄāĻŧāĻž, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ­ā§‚āĻ¤ āĻ†āĻ›ā§‡āĨ¤"

"āĻāĻ–āĻ¨ āĻ§āĻ°ā§āĻ¨ āĻ†āĻŽāĻ°āĻž Ogre-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ - āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻŋ, āĻ…āĻ°ā§āĻ§ā§‡āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤"

"āĻ†āĻŽāĻŋ āĻ°āĻžāĻœāĻŋāĨ¤ āĻāĻŸāĻž āĻāĻ•āĻŸāĻž āĻ­āĻžāĻ˛ā§‹ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤"

"āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ¯āĻž āĻŦāĻ˛āĻ›āĻŋ āĻ¤āĻž āĻšāĻ˛: āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻšāĻ˛ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĨ¤"

"āĻ†āĻŽāĻŋāĻ“ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ†āĻŽāĻŋ āĻœāĻžāĻ¨āĻ¤āĻžāĻŽ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡..."

"āĻšā§āĻ¯āĻžāĻāĨ¤ āĻ†āĻŽāĻŋ āĻāĻ•āĻŽāĻ¤, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻ¨āĻ‡ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ¤āĻŦā§āĻ“, āĻ¨āĻž āĻœāĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ¨āĻž āĻœāĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻž āĻĒāĻžāĻ°āĻž āĻ­āĻžāĻ˛āĨ¤ āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ˛āĻŋāĻ™ā§āĻ•: āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ "

"āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ."

" āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĨ¤"

"āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ¯āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻž āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĨ¤"

"āĻāĻŸāĻž āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ˛āĻžāĻ—āĻŦā§‡?!"

"āĻ§āĻ°ā§āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻ¸āĻšāĻœāĨ¤"

"āĻāĻ–āĻ¨, āĻ§āĻ°āĻž āĻ¯āĻžāĻ• āĻ†āĻĒāĻ¨āĻžāĻ° āĻ–ā§‡āĻ˛āĻžāĻ¯āĻŧ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ°ā§‡āĻ¸ āĻ†āĻ›ā§‡: āĻŽāĻžāĻ¨ā§āĻˇ, āĻāĻ˛āĻ­āĻ¸ āĻāĻŦāĻ‚ āĻĻāĻžāĻ¨āĻŦāĨ¤ āĻāĻŦāĻ‚ āĻ­āĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻœāĻžāĻ¤āĻŋāĻ¤ā§‡ āĻ¯ā§‹āĻĻā§āĻ§āĻž, āĻ¤ā§€āĻ°āĻ¨ā§āĻĻāĻžāĻœ āĻāĻŦāĻ‚ āĻœāĻžāĻĻā§āĻ•āĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ•āĻœāĻ¨ āĻ–ā§‡āĻ˛ā§‹āĻ¯āĻŧāĻžāĻĄāĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻ°ā§‡āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‡ āĻ–ā§‡āĻ˛āĻ›ā§‡āĨ¤ āĻ—ā§‡āĻŽāĻŸāĻŋāĻ¤ā§‡āĨ¤ āĻ•ā§‹āĻĄā§‡ āĻāĻŸāĻŋ āĻ•ā§‡āĻŽāĻ¨ āĻĻā§‡āĻ–āĻžāĻŦā§‡ āĻ¤āĻž āĻāĻ–āĻžāĻ¨ā§‡:"

āĻ¸ā§ˆāĻ¨āĻŋāĻ• āĻļā§āĻ°ā§‡āĻŖā§€āĻ° āĻ˜ā§‹āĻˇāĻŖāĻž
class Warrior
{
}
class Archer
{
}
class Mag
{
}
āĻŽāĻžāĻ¨ā§āĻˇ
class HumanWarrior extends Warrior
{
}

class HumanArcher extends Archer
{
}

class HumanMag extends Mag
{
}
āĻāĻ˛āĻ­āĻ¸
class ElfWarrior extends Warrior
{
}

class ElfArcher extends Archer
{
}

class ElfMag extends Mag
{
}
āĻ°āĻžāĻ•ā§āĻˇāĻ¸
class DaemonWarrior extends Warrior
{
}

class DaemonArcher extends Archer
{
}

class DaemonMag extends Mag
{
}

āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻāĻ° āĻ˜ā§‹āĻĄāĻŧāĻĻā§ŒāĻĄāĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•, āĻ…āĻĨāĻŦāĻž āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸ā§‡āĻ¨āĻžāĻŦāĻžāĻšāĻŋāĻ¨ā§€āĻ“ āĻ•āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

āĻ¸ā§‡āĻ¨āĻžāĻŦāĻžāĻšāĻŋāĻ¨ā§€
abstract class Army
{
 public Warrior createWarrior();
 public Archer createArcher();
 public Mag createMag();
}
āĻŽāĻžāĻ¨āĻŦ āĻŦāĻžāĻšāĻŋāĻ¨ā§€
class HumanArmy extends Army
{
 public Warrior createWarrior()
 {
  return new HumanWarrior();
 }
 public Archer createArcher()
 {
  return new HumanArcher();
 }
 public Mag createMag()
 {
  return new HumanMag();
 }
}
āĻāĻ˛āĻĢ āĻŦāĻžāĻšāĻŋāĻ¨ā§€
class ElfArmy extends Army
{
 public Warrior createWarrior()
 {
  return new ElfWarrior();
 }
 public Archer createArcher()
 {
  return new ElfArcher();
 }
 public Mag createMag()
 {
  return new ElfMag();
 }
}
āĻĻāĻžāĻ¨āĻŦ āĻŦāĻžāĻšāĻŋāĻ¨ā§€
class DaemonArmy extends Army
{
 public Warrior createWarrior()
 {
  return new DaemonWarrior();
 }
 public Archer createArcher()
 {
  return new DaemonArcher();
 }
 public Mag createMag()
 {
  return new DaemonMag();
 }
}

"āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨?"

"āĻ†āĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ¸ā§‡āĻ¨āĻžāĻŦāĻžāĻšāĻŋāĻ¨ā§€, āĻ“āĻ¯āĻŧāĻžāĻ°āĻŋāĻ¯āĻŧāĻ°, āĻ†āĻ°ā§āĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻŽā§āĻ¯āĻžāĻœ āĻ•ā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ•āĻžāĻ™ā§āĻ•ā§āĻˇāĻŋāĻ¤ āĻ†āĻ°ā§āĻŽāĻŋ āĻ¸āĻžāĻŦāĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĒāĻžāĻ¸ āĻ•āĻ°ā§āĻ¨āĨ¤"

"āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:"

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
Army humans = new HumanArmy();
Army daemons = new DaemonArmy();

Army winner = FightSimulator.simulate(humans, daemons);

"āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻļā§āĻ°ā§‡āĻŖā§€ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻœāĻžāĻ¤āĻŋ (āĻ¸ā§‡āĻ¨āĻžāĻŦāĻžāĻšāĻŋāĻ¨ā§€āĻ°) āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¯ā§āĻĻā§āĻ§ āĻ…āĻ¨ā§āĻ•āĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§‡āĻŦāĻ˛ āĻĻā§āĻŸāĻŋ āĻ¸ā§‡āĻ¨āĻž āĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻļā§āĻ°ā§‡āĻŖā§€ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§ˆāĻ¨ā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻœāĻ¯āĻŧā§€āĻ•ā§‡ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ¯ā§āĻĻā§āĻ§ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ "

"āĻ†āĻŽāĻŋ āĻĻā§‡āĻ–āĻ›āĻŋāĨ¤ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻāĻ•āĻŸāĻŋ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤"

"āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻžāĻ‡ āĻŦāĻ˛ā§āĻ¨ āĻ¨āĻž āĻ•ā§‡āĻ¨, āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤"

"āĻšā§āĻ¯āĻžāĻāĨ¤"

"āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ˛āĻŋāĻ™ā§āĻ• āĻ†āĻ›ā§‡:  āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ "