Pattern - hyunwoo-e/Spring GitHub Wiki

싱글톀 νŒ¨ν„΄

ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ‘œ 관리, μƒμ„±μžλ₯Ό private둜 μ„ μ–Έν•΄ μ™ΈλΆ€μ—μ„œ 직접 new ν‚€μ›Œλ“œλ‘œ 생성을 λ§‰μŒ

class Singleton{
    private static Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}

λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄

  • 타깃과 ν΄λΌμ΄μ–ΈνŠΈμ˜ μ½”λ“œ μˆ˜μ •μ—†μ΄ λ™μ μœΌλ‘œ 좔가적인 κΈ°λŠ₯듀을 κ°€μ§„ 객체λ₯Ό λ§λΆ™μ΄λŠ” νŒ¨ν„΄

ν”„λ‘μ‹œ νŒ¨ν„΄

ν”„λ‘μ‹œ νŒ¨ν„΄μ€ μ ‘κ·Όμ‹œ ν”„λ‘μ‹œλ₯Ό ν†΅ν•˜κ²Œ ν•˜λŠ”κ²ƒ, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄μ€ μ‹€ν–‰ νƒ€κΉƒμ˜ ν™•μž₯을 의미

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ 타깃에 μ ‘κ·Όν•˜λŠ” 방법을 μ œμ–΄, 타깃에 뢀가적인 κΈ°λŠ₯을 λΆ€μ—¬

AOP ν”„λ‘μ‹œ νŒ¨ν„΄

  • 핡심적인 κΈ°λŠ₯μ—μ„œ λΆ„λ¦¬λœ 뢀가적인 κΈ°λŠ₯을 Proxyμ—μ„œ 처리

Dynamic ν”„λ‘μ‹œ νŒ¨ν„΄

  • λ¦¬ν”Œλ ‰μ…˜κΈ°λŠ₯을 μ΄μš©ν•΄ μ΄μš©ν•΄ 타깃 μΈν„°νŽ˜μ΄μŠ€μ™€ λ™μΌν•œ ν˜•νƒœλ‘œ λŸ°νƒ€μž„μ‹œ λ§Œλ“€μ–΄μ§€λŠ” 였브젝트