๐Ÿ“–
Mini's Today I Learned
  • Today I Learned
  • ๐Ÿ’ปComputer Science
    • ๐ŸงฑComputer Science
      • Computer Architecture
    • ๐Ÿฆ•OperatingSystem
      • System Structure
      • 01. ์šด์˜์ฒด์ œ ์—ญํ• 
      • 02. History๋กœ ์ดํ•ดํ•˜๋Š” ์šด์˜์ฒด์ œ
      • 03. ์šด์˜์ฒด์ œ ๊ตฌ์กฐ
      • 04. ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ฅด๋ง
      • 05. ์Šค์ผ€์ฅด๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • 06. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ์™€ ์Šค์ผ€์ฅด๋Ÿฌ
      • 07. ์ธํ„ฐ๋ŸฝํŠธ
      • 08. ํ”„๋กœ์„ธ์Šค์™€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ
      • 09. ํ”„๋กœ์„ธ์Šค๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜(IPC ๊ธฐ๋ฒ•)
      • 10. Thread(์Šค๋ ˆ๋“œ)
      • 11. ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ (Virtual Memory System)
      • 12. ํŒŒ์ผ์‹œ์Šคํ…œ ์ดํ•ด
      • 13. ๋ถ€ํŒ…์˜ ์ดํ•ด
      • 14. ๊ฐ€์ƒ๋จธ์‹ (Virtual Machine)
  • ๐Ÿ“ˆDatabase
    • MySQL CLI (Frequently used)
    • 1-Tier, 2Tier, 3Tier
    • Basic SQL
    • Built in function
    • Sub Query
    • View
    • Stored Program
    • index
    • Normalization(์ •๊ทœํ™”)
    • Transaction
    • Transaction
  • ๐ŸŒ Network
    • ๐Ÿ”Œ TCP&IP Basic
      • 01 TCP/IP ๋ง›๋ณด๊ธฐ
      • 02 TCP/IP ๊ฐœ์š”
      • 03 ํ†ต์‹  ์„œ๋น„์Šค์™€ ํ”„๋กœํ† ์ฝœ
      • 04 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต
      • 05 ํŠธ๋ Œ์ŠคํฌํŠธ ๊ณ„์ธต
      • 06 ๋„คํŠธ์›Œํฌ๊ณ„์ธต
      • 07 ๋ฐ์ดํ„ฐ ๊ณ„์ธต๊ณผ ๋ฌผ๋ฆฌ๊ณ„์ธต
      • 08 ๋ผ์šฐํŒ…
      • 09 ๋ณด์•ˆ
      • 10 HTTP ํ”„๋กœํ† ์ฝœ
    • ๐Ÿฟ๏ธHTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ ์š”์•ฝ
      • 1. HTTP: ์›น์˜ ๊ธฐ์ดˆ
      • 2. URL ๊ณผ ๋ฆฌ์†Œ์Šค
      • 3. HTTP Message
      • 4. Connection Management
      • 5. Overview of web server architectures
      • 6. Proxies
      • 7.Caching
      • 8. Integration Points: Gateways, Tunnels, and Relays
      • 9. Web Robots
      • 10. HTTP/2.0
      • 11. Client Identification and Cookies
      • 12. Basic Authentication
      • 13. Digest Authentication
      • 14. Secure HTTP
      • 15. Entities and Encodings
      • 16. Internationalization
      • 17. Content Negotiation and Transcoding
      • 18. Web Hosting
  • ๐ŸดLanguage
    • โ˜•JAVA
      • Comparable vs Comparator
  • ๐Ÿ› ๏ธ Framework
  • ๐ŸงฉDesign Pattern
    • ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ (SOLID)
    • Design Pattern ๊ฐœ์š”
    • Template method
    • Singleton
  • ๐ŸฅFrontEnd
    • HTML&CSS
      • 01 Intro
      • 02 HTML Basic
      • 03 Content Section
      • 04 Block and Inline Elements
      • 05 Text Contents
      • 06 Inline Elements
      • 07 Multi Media
      • 08 Table&Form&etc
      • 09 Global Attribute & etc
      • 10 css basic
      • 11 css config
      • 12 css unit
      • 13 Box Model
      • 14 Font & Text
      • 15 Float(๋„์›€) & Position
      • 16 Background
      • 17 Transitions & Transforms
      • 18 Animation & Multi Columns(๋‹ค๋‹จ)
      • 19 Flex
      • 20 Grid
    • Sass(SCSS)
    • TypeScript
    • Webpack Introduction
      • ์›นํŒฉ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ
      • CommonJS
      • ESM
      • WebpackConfig
        • 1. Handlebars
        • 2. Caching
        • 3. Minification & Mangling
        • 4. Mode(Development mode & Production Mode)
        • 5. ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชจ๋“ˆ๋กœ ๋‹ค๋ฃจ์–ด๋ณด๊ธฐ(file-loader)
        • 6. ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชจ๋“ˆ๋กœ ๋‹ค๋ฃจ์–ด๋ณด๊ธฐ(url-loader)
        • 7. SASS Loader
        • 8. Post CSS
        • 9. BLOWSERS LIST
        • 10. Stylelint
        • 11. Babel
      • Webpack-Practice
    • ETC
      • GIT
      • MarkDown
Powered by GitBook
On this page

Was this helpful?

  1. Design Pattern

Template method

  • ํ•œ์ค„ ์š”์•ฝ: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ๋ถ€ ๋‹จ๊ณ„๋ฅผ ์„œ๋ธŒ ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ๋‹ค.

  • ์˜๋„

    • super class์— ๊ธฐ๋ณธ์ ์ธ ๋กœ์ง์˜ ํ๋ฆ„์„ ์ •์˜ํ•˜๊ณ 

      ๊ทธ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ƒ๋ฉ”์†Œ๋“œ๋‚˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๊ฐ€๋Šฅํ•œ protected method๋“ฑ์œผ๋กœ ๋งŒ๋“  ๋’ค,

      sub class์—์„œ ์ด๋Ÿฐ ๋ฉ”์†Œ๋“œ๋ฅผ ํ•„์š”์— ๋งž๊ฒŒ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌ์กฐ(๋ผˆ๋Œ€)๋Š” ๊ทธ๋Œ€๋กœ ๋†”๋‘๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ ๋‹จ๊ณ„์ฒ˜๋ฆฌ๋ฅผ ์„œ๋ธŒ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.

  • ํŠน์ง•

    • ๊ธฐ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(๊ตฌ์กฐ, ๋ผˆ๋Œ€)์— ๋Œ€ํ•œ ์ •์˜๋Š” super class(abstract, final) ์— ์ •์˜ํ•ด ๋‘๊ณ ,

    • ์‹ค์งˆ์ ์ธ behavior๋Š” ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ implementsํ•˜๋„๋ก ํ•œ๋‹ค.

  • ์šฉ์–ด

    • ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ

      • ํ•„์ˆ˜ ์ฒ˜๋ฆฌ ์ ˆ์ฐจ๋ฅผ ์ •์˜ํ•œ ๋ฉ”์†Œ๋“œ

      • ์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•˜๋Š” ์ถ”์ƒ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ •์˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ.

    • hook ๋ฉ”์†Œ๋“œ(hook operation)

      • super class์—์„œ ๋””ํดํŠธ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•ด ๋‘๊ฑฐ๋‚˜ ๋น„์›Œ๋’€๋‹ค๊ฐ€, ์„œ๋ธŒํด๋ž˜์Šค์—์„œ ์„ ํƒ์ ์œผ๋กœ override ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด๋‘” ๋ฉ”์†Œ๋“œ.

  • ์žฅ๋‹จ์ 

    • ์žฅ์ 

      • ์ฝ”๋“œ ์ค‘๋ณต ๊ฐ์†Œ

      • ์ž์‹ ํด๋ž˜์Šค์˜ ์—ญํ• ์„ ๊ฐ์†Œ ์‹œํ‚ค๋ฉด์„œ ํ•ต์‹ฌ ๋กœ์ง ๊ด€๋ฆฌ ์šฉ์ด

      • ๊ฐ์ฒด ์ถ”๊ฐ€ ๋ฐ ํ™•์žฅ์ด ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅ

    • ๋‹จ์ 

      • ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋งŽ์•„์ง€๋ฉด, class ๊ด€๋ฆฌ ๋ณต์žกํ•ด์ง

      • ์ถ”์ƒ ํด๋ž˜์Šค์™€ ๊ตฌํ˜„ํด๋ž˜์Šค๊ฐ„์˜ ๋ณต์žก์„ฑ ์ฆ๋Œ€

  • ์˜ˆ์ œ ์†Œ์Šค

    • Super class ์˜ˆ

      public abstract class Super{
          // ๊ธฐ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ (๊ธฐ๋ณธ ๊ณจ๊ฒฉ, ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ)
          // ์„œ๋ธŒ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ.
          public void templateMthod(){
              hookMethod();
              abstractMethod();
          }
          // hook method: ์„ ํƒ์ ์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ ๊ฐ€๋Šฅ 
          protected void hookMethod(){};
          // ์„œ๋ธŒ ํด๋ž˜์Šค์—์„œ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ถ”์ƒ๋ฉ”์†Œ๋“œ
          public abstract void abstractMethod(){};
      }
    • Sub class ์˜ˆ

      // super class์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๊ฑฐ๋‚˜ ๊ตฌํ˜„ํ•ด์„œ ๊ธฐ๋Šฅ ํ™•์žฅ
      public class Sub extends Super{
          protected void hookMethod(){
              ...
          }
          public void abstractMethod(){
              ...
          }
      }

[์ฐธ์กฐ ์ž๋ฃŒ]

ํ† ๋น„์˜ ์Šคํ”„๋ง 3.1

PreviousDesign Pattern ๊ฐœ์š”NextSingleton

Last updated 4 years ago

Was this helpful?

๐Ÿงฉ
์ข‹์€์‚ฌ๋žŒ blog
๊ธฐ๊ณ„์ธ๊ฐ„ github
crocus