1.1. λ¬Έμ ¶
- μ¬κΈ°μ λνμ΄ κ·Έλ €μ§λ€ ν¨μ λ¨μν λν μ΄λ¦μ μΆλ ₯νλ κ²μ΄λ€.
- μΌκ°ν, μ¬κ°ν, μ, κ·Έλ¦¬κ³ μ΄κ²μ μ‘°ν©μΌλ‘ μ΄λ£¨μ΄μ§ λν(λ λ€λ₯Έ μ‘°ν©μΌλ‘ μ΄λ£¨μ΄μ§ λνλ ν¬ν¨ κ°λ₯) μ΄ μλ€. μ΄ λνλ€μ Pallete μ λ£κ³ Draw νλ©΄ Pallete μμ μλ λͺ¨λ λνμ΄ κ·Έλ €μ§λ€.
1.2. Class ¶
- * Draw ꡬνμ λ¨μν νμ¬ λνμ΄λ¦μ μΆλ ₯νλ©΄ λλ€. λν μ‘°ν©μ μ‘°ν©μ μ΄λ£¨λ λͺ¨λ λν μ΄λ¦μ μΆλ ₯νλ€.
1.2.1. Shape ¶
- μνΌ ν΄λμ€
- μλ 4κ°μ§λ₯Ό μλΈ ν΄λμ€λ‘ κ°μ§λ€.
- Draw, Add, Remove ν¨μλ₯Ό virtual ν¨μλ‘ κ°μ§λ€.
1.2.2. Palette ¶
- map μ¬μ©
- κΈ°λ³Έμ μΌλ‘ Triangle, Square λ₯Ό κ°μ§κ³ μλ€.
- registerNewShape - μλ‘μ΄ λνμ λ±λ‘νλ€.
- Draw - λ±λ‘λ λͺ¨λ λνμ κ·Έλ¦°λ€.
1.2.3. ν΄λμ€ μ¬μ© μ ¶
~cpp Triangle aTriangle; Rectangle aRectangle; ComposedShape aComposedShape2; aComposedShape2.Add(&aTriangle); aComposedShape2.Add(&aRectangle); Circle aCircle; Rectangle aRectangle2; ComposedShape aComposedShape; aComposedShape.Add(&aComposedShape2); aComposedShape.Add(&aCircle); aComposedShape.Add(&aRectangle2); Pallete aPallete; aPallete.registerNewShape(aComposedShape); aPallete.Draw();