╩ε∞∩εφσφ≥φα  εß·σΩ≥φα  ∞εΣσδⁿ JavaBeans

╠α≥σ≡Φαδ δ■ßστφε ∩≡σΣε±≥αΓδσφ Ωε∞∩αφΦσΘ Jet Infosystems

1. ┬ΓσΣσφΦσ

═αΩε∩δσφΦσ Φ Φ±∩εδⁿτεΓαφΦσ ∩≡επ≡α∞∞Φ±≥±ΩΦ⌡ τφαφΦΘ - Ωδ■≈σΓεΘ Γε∩≡ε± ±εΓ≡σ∞σφφ√⌡ Φφ⌠ε≡∞α÷Φεφφ√⌡ ≥σ⌡φεδεπΦΘ. ╤σΘ≈α± φσ Φ∞σσ≥ ßεδⁿ°επε τφα≈σφΦ , φα±ΩεδⁿΩε ≤Σεßφε Γ ≥ε∞ ΦδΦ Φφε∞ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ ∩≡εσΩ≥Φ≡εΓα≥ⁿ Φ ≡σαδΦτεΓ√Γα≥ⁿ ∩≡επ≡α∞∞√ "± φ≤δ " - Γ δ■ßε∞ ±δ≤≈ασ Σδ  ßεδⁿ°εΘ Φφ⌠ε≡∞α÷ΦεφφεΘ ±Φ±≥σ∞√ ²≥ε ß≤Σσ≥ ±δεµφ√Θ, ∞φεπεδσ≥φΦΘ ∩≡ε÷σ±±. ┬∩≡ε≈σ∞, ΩαΩ ∩≡αΓΦδε, ²≥ε Φ φσ φ≤µφε. ╬≈σφⁿ ∞φεπΦσ Γσ∙Φ ≤µσ φα∩Φ±αφ√ (∩≡Φ≈σ∞ ∩ε ∞φεπε ≡ατ), ≥αΩ ≈≥ε ε±≥ασ≥±  ≥εδⁿΩε φα±≥≡εΦ≥ⁿ Φ⌡ Σεδµφ√∞ εß≡ατε∞ Φ "∩≡εΦφ≥σπ≡Φ≡εΓα≥ⁿ", ≥ε σ±≥ⁿ ±εß≡α≥ⁿ Γ σΣΦφ≤■ ±Φ±≥σ∞≤.

┼±δΦ ∩≡εΓεΣΦ≥ⁿ αφαδεπΦ■ ±ε ±≥≡εΦ≥σδⁿ±≥Γε∞, ≥ε Γ φα±≥ε ∙σσ Γ≡σ∞  φαΦßεδσσ ∩σ≡±∩σΩ≥ΦΓφ√∞Φ ∩≡σΣ±≥αΓδ ■≥±  Ω≡≤∩φεßδε≈φ√σ ±ßε≡ε≈φ√σ ≥σ⌡φεδεπΦΦ. ┬ ∩≡επ≡α∞∞Φ≡εΓαφΦΦ ²≥ε φα∩≡αΓδσφΦσ ≡ατΓΦΓασ≥±  ΣαΓφε Φ ∩εΣ ≡ατφ√∞Φ φατΓαφΦ ∞Φ - ßΦßδΦε≥σΩΦ ±≥αφΣα≡≥φ√⌡ ∩≡επ≡α∞∞, ∩αΩσ≥√ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞ Φ ≥.∩. ╨ατ≡αßε≥αφ√ ∞φεπε≈Φ±δσφφ√σ "∞απΦ", ≡σαδΦτ≤■∙Φσ ⌠≡απ∞σφ≥√, ±∩σ÷Φ⌠Φ≈φ√σ Σδ  ε∩σ≡α÷Φεφφεπε εΩ≡≤µσφΦ  ΦδΦ ∩≡σΣ∞σ≥φεΘ εßδα±≥Φ.

╩ε∞∩εφσφ≥φ√σ εß·σΩ≥φ√σ ±≡σΣ√ - ²≥ε φαΦßεδσσ ±εΓ≡σ∞σφφ√Θ Φ σ±≥σ±≥Γσφφ√Θ ⌠≤φΣα∞σφ≥ Σδ  φαΩε∩δσφΦ  Φ Φ±∩εδⁿτεΓαφΦ  ∩≡επ≡α∞∞Φ±≥±ΩΦ⌡ τφαφΦΘ. ╧εΣεßφα  ±≡σΣα ßατΦ≡≤σ≥±  φα Ωε∞∩εφσφ≥φεΘ εß·σΩ≥φεΘ ∞εΣσδΦ Φ ΓΩδ■≈ασ≥ Γ ±σß  πε≥εΓ√σ Ωε∞∩εφσφ≥√, α ≥αΩµσ Φφ±≥≡≤∞σφ≥αδⁿφεσ εΩ≡≤µσφΦσ, ∩ετΓεδ ■∙σσ Γ√ß≡α≥ⁿ ∩εΣ⌡εΣ ∙Φσ Ωε∞∩εφσφ≥√, φα±≥≡εΦ≥ⁿ Φ⌡ Φ ±Γ τα≥ⁿ ∞σµΣ≤ ±εßεΘ, εß·σΣΦφΦΓ Γ πε≥εΓεσ ∩≡ΦδεµσφΦσ.

╩ε∞∩εφσφ≥φ√σ εß·σΩ≥φ√σ ±≡σΣ√ εßδαΣα■≥ Γ±σ∞Φ Σε±≥εΦφ±≥Γα∞Φ, ∩≡Φ±≤∙Φ∞Φ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφε∞≤ ∩εΣ⌡εΣ≤:

╩≡ε∞σ ≥επε, εß·σΣΦφσφΦσ Ωε∞∩εφσφ≥εΓ Γ ≡α∞Ωα⌡ σΣΦφεπε Ωεφ≥σΘφσ≡α, ± εΣφεΘ ±≥ε≡εφ√, ∩ετΓεδ σ≥ ±≥≡εΦ≥ⁿ Φσ≡α≡⌡ΦΦ ± φσßεδⁿ°Φ∞ ≈Φ±δε∞ ±≤∙φε±≥σΘ φα ΩαµΣε∞ ≤≡εΓφσ (²≥ε φσεß⌡εΣΦ∞εσ ≤±δεΓΦσ ≤±∩σ°φεΘ ≡αßε≥√ ± δ■ßεΘ ±δεµφεΘ ±Φ±≥σ∞εΘ), α, ± Σ≡≤πεΘ ±≥ε≡εφ√ (Φ ²≥ε ε≈σφⁿ Γαµφε ± ∞σ≥εΣεδεπΦ≈σ±ΩΦ⌡ ∩ετΦ÷ΦΘ), ∩≡σΣε±≥αΓδ σ≥ ∞σ⌡αφΦτ∞ εß≡ατεΓαφΦ  φεΓ√⌡ ∩εφ ≥ΦΘ ΩαΩ Γε Γ≡σ∞  ≡ατ≡αßε≥ΩΦ ∩≡επ≡α∞∞φεΘ ±Φ±≥σ∞√, ≥αΩ Φ Γ ∩≡ε÷σ±±σ σσ Φ±∩εδⁿτεΓαφΦ .

JavaBeans - φσ σΣΦφ±≥Γσφφα  Φ φσ ∩σ≡Γα  Ωε∞∩εφσφ≥φα  εß·σΩ≥φα  ±≡σΣα, εΣφαΩε, ≤≈Φ≥√Γα  επ≡ε∞φ≤■ ∩ε∩≤δ ≡φε±≥ⁿ Java-≥σ⌡φεδεπΦΦ, ∞√ ≡σ°ΦδΦ ≡α±±∞ε≥≡σ≥ⁿ Φ∞σφφε JavaBeans, ±ε±≡σΣε≥ε≈ΦΓ°Φ±ⁿ φα Ωε∞∩εφσφ≥φεΘ εß·σΩ≥φεΘ ∞εΣσδΦ. ═α°σ ΦτδεµσφΦσ ε±φεΓ√Γασ≥±  φα Γσ≡±ΦΦ ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans [1] ε≥ 25 Φ■δ  1997 πεΣα. ╚±∩εδⁿτ≤■≥±  ≥αΩµσ φσΩε≥ε≡√σ Σ≡≤πΦσ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Φ Φ⌡ ∩≡εσΩ≥√ [2, 3, 4, 5].

2. ╩ε≡ε≥Ωε ε  τ√Ωσ Java

╠√ ∩ετΓεδΦ∞ ±σßσ Ωε≡ε≥Ωε φα∩ε∞φΦ≥ⁿ ≈Φ≥α≥σδ ∞ φσΩε≥ε≡√σ ±ΓσΣσφΦ  ε  τ√Ωσ Java, Ωε≥ε≡√σ ∩εφαΣεß ≥±  φα∞ Σδ  ΣαδⁿφσΘ°σπε ΦτδεµσφΦ . ┴εδσσ ∩εδφεσ ε∩Φ±αφΦσ  τ√Ωα Φ α±±ε÷ΦΦ≡εΓαφφεΘ ≥σ⌡φεδεπΦΦ ∞εµφε φαΘ≥Φ, φα∩≡Φ∞σ≡, Γ ±≥α≥ⁿσ [6].

Java - εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ  τ√Ω. ┬ σπε ε±φεΓσ δσµΦ≥ ∩εφ ≥Φσ Ωδα±±α. ╩δα±±  Γδ σ≥±  °αßδεφε∞ Σδ  ±ετΣαφΦ  εß·σΩ≥εΓ; εφ ∞εµσ≥ ±εΣσ≡µα≥ⁿ Σαφφ√σ Φ ∞σ≥εΣ√. ╤≤∙σ±≥Γ≤■≥ ≡ατδΦ≈φ√σ ≡σµΦ∞√ Σε±≥≤∩α Ω ²δσ∞σφ≥α∞ Ωδα±±α - private, protected, public.

Java - ∩εδφε±≥ⁿ■ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ  τ√Ω, ΩαµΣε∞≤ ∩εφ ≥Φ■ Ωε≥ε≡επε (Ωδα±±, εß·σΩ≥, ∞σ≥εΣ Φ ≥.∩.) ±εε≥Γσ≥±≥Γ≤σ≥ Ωδα±±, ∩εΣΣσ≡µΦΓα■∙ΦΘ ∩≡επ≡α∞∞φ≤■ εß≡αßε≥Ω≤ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ "∩εφ ≥ΦΘφ√⌡" εß·σΩ≥εΓ.

╩δα±±√ Γ  τ√Ωσ Java εß·σΣΦφ ■≥±  Γ ∩αΩσ≥√. ╩αµΣ√Θ ∩αΩσ≥ ε∩≡σΣσδ σ≥ ε≥Σσδⁿφεσ ∩≡ε±≥≡αφ±≥Γε Φ∞σφ. ┬±σ Ωδα±±√, Γ⌡εΣ ∙Φσ Γ εΣΦφ ∩αΩσ≥,  Γδ ■≥±  Σ≡≤µσ±≥Γσφφ√∞Φ ∩ε ε≥φε°σφΦ■ Σ≡≤π Ω Σ≡≤π≤, ≥ε σ±≥ⁿ Φ∞σ■≥ ΓταΦ∞φ√Θ Σε±≥≤∩ Ω ∩σ≡σ∞σφφ√∞ Φ ∞σ≥εΣα∞, σ±δΦ ∩≡ε≥ΦΓφεσ φσ επεΓε≡σφε  Γφε ∩ε±≡σΣ±≥Γε∞ ±∩σ÷Φ⌠ΦΩα≥ε≡εΓ private ΦδΦ protected.

─δ  εßετφα≈σφΦ  φα±δσΣεΓαφΦ  Φ±∩εδⁿτ≤σ≥±  Ωδ■≈σΓεσ ±δεΓε extends. ╩δα±± Object - ²≥ε Ωε≡σφⁿ Σσ≡σΓα φα±δσΣεΓαφΦ . ╚∞σσ≥±  ∩≡σΣε∩≡σΣσδσφφα  Φσ≡α≡⌡Φ  Ωδα±±εΓ, ε∩Φ±αφφα  Γ ∩αΩσ≥σ java.lang.

┬  τ√Ωσ Java ε≥±≤≥±≥Γ≤σ≥ ∞φεµσ±≥Γσφφεσ φα±δσΣεΓαφΦσ, εΣφαΩε φαδΦ≈Φσ ∩εφ ≥Φ  Φφ≥σ≡⌠σΘ±α ∩ετΓεδ σ≥ ±∞ π≈Φ≥ⁿ ²≥ε επ≡αφΦ≈σφΦσ. ╚φ≥σ≡⌠σΘ± ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ φαßε≡ ε∩Φ±αφΦΘ ∞σ≥εΣεΓ. ╩δα±±√ ∞επ≤≥ ≡σαδΦτεΓ√Γα≥ⁿ Φφ≥σ≡⌠σΘ±√. ▌≥ε≥ ⌠αΩ≥ εßετφα≈ασ≥±  Ωδ■≈σΓ√∞ ±δεΓε∞ implements Γ ταπεδεΓΩσ Ωδα±±α.

╩δα±± Class Φ±∩εδⁿτ≤σ≥±  Σδ  ∩εδ≤≈σφΦ  Γε Γ≡σ∞  Γ√∩εδφσφΦ  Φφ⌠ε≡∞α÷ΦΦ ε "Ωδα±±εΓ√⌡" ±ΓεΘ±≥Γα⌡ εß·σΩ≥εΓ. ╥Φ∩Φ≈φ√σ ∞σ≥εΣ√ ²≥επε Ωδα±±α - forName (∩εδ≤≈σφΦσ εß·σΩ≥α Ωδα±±α Class ∩ε ≥σΩ±≥εΓε∞≤ Φ∞σφΦ), newInstance (∩ε≡εµΣσφΦσ φεΓεπε εß·σΩ≥α Σαφφεπε Ωδα±±α), getMethods (∩εδ≤≈σφΦσ ∞α±±ΦΓα εß·σΩ≥εΓ, ε∩Φ±√Γα■∙Φ⌡ public-∞σ≥εΣ√ Ωδα±±α, Γ ≥ε∞ ≈Φ±δσ ≤φα±δσΣεΓαφφ√σ).

Java-Ωδα±±√ ∞επ≤≥ ß√≥ⁿ αß±≥≡αΩ≥φ√∞Φ, ≥ε σ±≥ⁿ φσ Σε Ωεφ÷α ΩεφΩ≡σ≥ΦτΦ≡εΓαφφ√∞Φ. ▌≥ε ετφα≈ασ≥, ≈≥ε Γ Ωδα±±σ ε∩Φ±αφ√ ∞σ≥εΣ√, ε∩≡σΣσδσφΦ  Ωε≥ε≡√⌡ ε≥±≤≥±≥Γ≤■≥. ╥αΩΦσ ∞σ≥εΣ√ (ΩαΩ Φ ±α∞ Ωδα±±) Σεδµφ√ ±φαßµα≥ⁿ±  ε∩Φ±α≥σδσ∞ abstract Φ ΩεφΩ≡σ≥ΦτΦ≡εΓα≥ⁿ±  Γ ∩≡εΦτΓεΣφ√⌡ Ωδα±±α⌡.

─δ  εß≡αßε≥ΩΦ Φ±Ωδ■≈Φ≥σδⁿφ√⌡ ±Φ≥≤α÷ΦΘ, ΓετφΦΩα■∙Φ⌡ Γε Γ≡σ∞  Γ√∩εδφσφΦ  ∩≡επ≡α∞∞√, Γ  τ√Ωσ Java Φ±∩εδⁿτ≤σ≥±  Ωεφ±≥≡≤Ω÷Φ  try/catch/finally. ─δ  ∩σ≡σΣα≈Φ Φφ⌠ε≡∞α÷ΦΦ εß Φ±Ωδ■≈Φ≥σδⁿφεΘ ±Φ≥≤α÷ΦΦ Φ±∩εδⁿτ≤■≥±  εß·σΩ≥√ Ωδα±±εΓ - φα±δσΣφΦΩεΓ Ωδα±±α Throwable.

╠σ⌡αφΦτ∞ ∩ε≥εΩεΓ - εß τα≥σδⁿφα  ≈σ≡≥α ±εΓ≡σ∞σφφ√⌡ ε∩σ≡α÷Φεφφ√⌡ ±≡σΣ. ┬  τ√Ωσ Java ∩ε≥εΩΦ ∩≡σΣ±≥αΓδσφ√ ∩ε±≡σΣ±≥Γε∞ Ωδα±±α Thread, Φφ≥σ≡⌠σΘ±α Runnable, ±∩σ÷Φ⌠ΦΩα≥ε≡α ∞σ≥εΣα synchronized Φ ∞σ≥εΣεΓ Ωδα±±α Object wait Φ notify.

Java-∩≡επ≡α∞∞√ ∩εΣ≡ατΣσδ ■≥±  φα ΣΓα ΓΦΣα - ±α∞ε±≥ε ≥σδⁿφ√σ ∩≡ΦδεµσφΦ  Φ α∩δσ≥√. ╧ε±δσΣφΦσ Γ√∩εδφ ■≥±  Γ ±≡σΣσ Web-φαΓΦπα≥ε≡α Φ ∞επ≤≥ ∩ε±≥≤∩α≥ⁿ ∩ε ±σ≥Φ. ╧≡ΦδεµσφΦ  Φ α∩δσ≥√ ±≤∙σ±≥Γσφφε ≡ατδΦ≈α■≥±  ∩ε ∞σ≡α∞ ßστε∩α±φε±≥Φ, ∩≡ΦφΦ∞ασ∞√∞ Γ ∩≡ε÷σ±±σ Φ⌡ ≡αßε≥√ (α∩δσ≥√ Ωεφ≥≡εδΦ≡≤■≥±  τφα≈Φ≥σδⁿφε µσ±≥≈σ).

Java-Ωε∞∩Φδ ≥ε≡ ≥≡αφ±δΦ≡≤σ≥ Φ±⌡εΣφ√σ ≥σΩ±≥√ ∩≡επ≡α∞∞ Γ ΩεΣ√ ΓΦ≡≥≤αδⁿφεΘ Java-∞α°Φφ√. ╩ε∞∩Φδ ≥ε≡ ∩ε≡εµΣασ≥ ⌠αΘδ√ Ωδα±±εΓ, ±εΣσ≡µα∙Φσ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞√σ ΩεΣ√ Φ Σε∩εδφΦ≥σδⁿφ≤■ Φφ⌠ε≡∞α÷Φ■, Φ±∩εδⁿτ≤σ∞≤■ φα ²≥α∩σ Γ√∩εδφσφΦ . ╤∩σ÷Φ⌠ΦΩα÷ΦΦ Java-∞α°Φφ√ εßσ±∩σ≈ΦΓα■≥ φσταΓΦ±Φ∞ε±≥ⁿ ±Ωε∞∩ΦδΦ≡εΓαφφ√⌡ ∩≡επ≡α∞∞ ε≥ ∩εΣΣσ≡µΦΓα■∙σΘ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞√.

3. ╬±φεΓφ√σ ∩εφ ≥Φ  ∞εΣσδΦ JavaBeans

╤≡σΣα JavaBeans  Γδ σ≥±  φαΣ±≥≡εΘΩεΘ φαΣ ±≥αφΣα≡≥φεΘ Java-≥σ⌡φεδεπΦσΘ. ╬φα φα±δσΣ≤σ≥ ∩εφ ≥Φ  Φ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Java, ≥αΩΦσ ΩαΩ εß·σΩ≥φα  ε≡Φσφ≥Φ≡εΓαφφε±≥ⁿ, ∞φεπε∩ε≥εΩεΓε±≥ⁿ, Φ±∩εδⁿτεΓαφΦσ ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√, φσταΓΦ±Φ∞ε±≥ⁿ ε≥ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞√, Φφ⌠ε≡∞α÷Φεφφα  ßστε∩α±φε±≥ⁿ Φ ≥.∩. ┬ JavaBeans φσ≥ φΦ≈σπε, φσ Γ√≡ατΦ∞επε Γ ≥σ≡∞Φφα⌡  τ√Ωα Java.

╬±φεΓεΘ ±≡σΣ√ JavaBeans  Γδ σ≥±  Ωε∞∩εφσφ≥φα  εß·σΩ≥φα  ∞εΣσδⁿ, ∩≡σΣ±≥αΓδ ■∙α  ±εßεΘ ±εΓεΩ≤∩φε±≥ⁿ α≡⌡Φ≥σΩ≥≤≡√ Φ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞φ√⌡ Φφ≥σ≡⌠σΘ±εΓ. └≡⌡Φ≥σΩ≥≤≡≤ εß≡ατ≤■≥ ε±φεΓφ√σ ∩εφ ≥Φ  Φ ±Γ τΦ ∞σµΣ≤ φΦ∞Φ. ╧≡ΦΩδαΣφ√σ ∩≡επ≡α∞∞φ√σ Φφ≥σ≡⌠σΘ±√ ⌡α≡αΩ≥σ≡Φτ≤■≥ φαßε≡ ±σ≡ΓΦ±εΓ, ∩≡σΣε±≥αΓδ σ∞√⌡ ²δσ∞σφ≥α∞Φ ±≡σΣ√. ╬φΦ ε∩Φ±√Γα■≥±  Γ ≥σ≡∞Φφα⌡ ±Φφ≥αΩ±Φ±α Φ ±σ∞αφ≥ΦΩΦ Java-Ωδα±±εΓ Φ Φφ≥σ≡⌠σΘ±εΓ.

╩ ≈Φ±δ≤ ε±φεΓφ√⌡ ∩εφ ≥ΦΘ α≡⌡Φ≥σΩ≥≤≡√ JavaBeans ε≥φε± ≥±  Ωε∞∩εφσφ≥√ Φ Ωεφ≥σΘφσ≡√. ╩εφ≥σΘφσ≡√ ∞επ≤≥ ΓΩδ■≈α≥ⁿ Γ ±σß  ∞φεµσ±≥Γε Ωε∞∩εφσφ≥εΓ, εß≡ατ≤  εß∙ΦΘ Ωεφ≥σΩ±≥ ΓταΦ∞εΣσΘ±≥ΓΦ  ± Σ≡≤πΦ∞Φ Ωε∞∩εφσφ≥α∞Φ Φ ± εΩ≡≤µσφΦσ∞. ╩εφ≥σΘφσ≡√ ∞επ≤≥ Γ√±≥≤∩α≥ⁿ Γ ≡εδΦ Ωε∞∩εφσφ≥εΓ Σ≡≤πΦ⌡ Ωεφ≥σΘφσ≡εΓ.

═σ⌠ε≡∞αδⁿφε Ωε∞∩εφσφ≥ ("Ωε⌠σΘφεσ τσ≡φε" - Java Bean) ∞εµφε ε∩≡σΣσδΦ≥ⁿ ΩαΩ ∞φεπεΩ≡α≥φε Φ±∩εδⁿτ≤σ∞√Θ ∩≡επ≡α∞∞φ√Θ εß·σΩ≥, Σε∩≤±Ωα■∙ΦΘ εß≡αßε≥Ω≤ Γ π≡α⌠Φ≈σ±Ωε∞ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ Φ ±ε⌡≡αφσφΦσ Γ ΣεδπεΓ≡σ∞σφφεΘ ∩α∞ ≥Φ. ╤ ≡σαδΦτα÷ΦεφφεΘ ≥ε≈ΩΦ τ≡σφΦ  Ωε∞∩εφσφ≥ - ²≥ε Java-Ωδα±± Φ, Γετ∞εµφε, φαßε≡ α±±ε÷ΦΦ≡εΓαφφ√⌡ Σε∩εδφΦ≥σδⁿφ√⌡ Ωδα±±εΓ.

╩αµΣ√Θ Ωε∞∩εφσφ≥ ∩≡σΣε±≥αΓδ σ≥ φαßε≡ ∞σ≥εΣεΓ, Σε±≥≤∩φ√⌡ Σδ  Γ√τεΓα Φτ Σ≡≤πΦ⌡ Ωε∞∩εφσφ≥εΓ Φ/ΦδΦ Ωεφ≥σΘφσ≡εΓ.

╩ε∞∩εφσφ≥√ ∞επ≤≥ εßδαΣα≥ⁿ ±ΓεΘ±≥Γα∞Φ. ╤εΓεΩ≤∩φε±≥ⁿ τφα≈σφΦΘ ±ΓεΘ±≥Γ ε∩≡σΣσδ σ≥ ±ε±≥ε φΦσ Ωε∞∩εφσφ≥α. ╤ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ Σε±≥≤∩φ√ φα ≈≥σφΦσ Φ/ΦδΦ τα∩Φ±ⁿ ∩ε±≡σΣ±≥Γε∞ ∞σ≥εΣεΓ Γ√ßε≡ΩΦ Φ ≤±≥αφεΓΩΦ.

╩ε∞∩εφσφ≥√ ∞επ≤≥ ∩ε≡εµΣα≥ⁿ ±εß√≥Φ  (ß√≥ⁿ Φ±≥ε≈φΦΩα∞Φ ±εß√≥ΦΘ), ΦτΓσ∙α  ε φΦ⌡ Σ≡≤πΦσ Ωε∞∩εφσφ≥√, τα≡σπΦ±≥≡Φ≡εΓαΓ°Φσ±  Γ Ωα≈σ±≥Γσ ∩εΣ∩Φ±≈ΦΩεΓ. ╚τΓσ∙σφΦσ (φατ√Γασ∞εσ ≥αΩµσ ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥Φ ) ταΩδ■≈ασ≥±  Γ Γ√τεΓσ ε∩≡σΣσδσφφεπε ∞σ≥εΣα εß·σΩ≥εΓ-∩εΣ∩Φ±≈ΦΩεΓ.

╥Φ∩Φ≈φ√∞ ∩≡Φ∞σ≡ε∞ ±εß√≥Φ   Γδ σ≥±  Φτ∞σφσφΦσ ±ΓεΘ±≥Γ Ωε∞∩εφσφ≥α. ┬ εß∙σ∞ ±δ≤≈ασ Ωε∞∩εφσφ≥ ∞εµσ≥ ∩≡σΣε±≥αΓδ ≥ⁿ ∩εΣ∩Φ±Ω≤ φα ∩εδ≤≈σφΦσ Φφ⌠ε≡∞α÷ΦΦ εß Φτ∞σφσφΦΦ Φ φα ∩≡αΓε τα∩≡σ∙α≥ⁿ Φτ∞σφσφΦσ.

╠σ≥εΣ√, ±ΓεΘ±≥Γα Φ ±εß√≥Φ  εß≡ατ≤■≥ φαßε≡ α⌠Φ°Φ≡≤σ∞√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥α, ≥ε σ±≥ⁿ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ, Σε±≥≤∩φ√⌡ Φφ±≥≡≤∞σφ≥αδⁿφε∞≤ εΩ≡≤µσφΦ■ Φ Σ≡≤πΦ∞ Ωε∞∩εφσφ≥α∞. ▌≥ε≥ φαßε≡ ∞εµσ≥ ß√≥ⁿ Γ√ ±φσφ ∩ε±≡σΣ±≥Γε∞ ∞σ⌡αφΦτ∞α Φφ≥≡ε±∩σΩ÷ΦΦ.

╤ε±≥ε φΦσ Ωε∞∩εφσφ≥εΓ ∞εµσ≥ ß√≥ⁿ ±ε⌡≡αφσφε Γ ΣεδπεΓ≡σ∞σφφεΘ ∩α∞ ≥Φ. ═αδΦ≈Φσ ∞σ≥εΣεΓ Σδ  ∩εΣεßφεπε ±ε⌡≡αφσφΦ  Γ√Σσδ σ≥ Ωε∞∩εφσφ≥√ JavaBeans ±≡σΣΦ ∩≡εΦτΓεδⁿφ√⌡ Java-Ωδα±±εΓ.

╩ε∞∩εφσφ≥√ JavaBeans ∞επ≤≥ ≤∩αΩεΓ√Γα≥ⁿ±  Σδ  ßεδσσ ²⌠⌠σΩ≥ΦΓφεπε ⌡≡αφσφΦ  Φ ∩σ≡σΣα≈Φ ∩ε ±σ≥Φ. ╬∩Φ±αφΦσ ±εε≥Γσ≥±≥Γ≤■∙σπε ⌠ε≡∞α≥α  Γδ σ≥±  ≈α±≥ⁿ■ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans.

╞Φτφσφφ√Θ ÷ΦΩδ Ωε∞∩εφσφ≥εΓ JavaBeans ∞εµφε ∩εΣ≡ατΣσδΦ≥ⁿ φα ≥≡Φ ²≥α∩α:

╨ατ≡αßε≥Ωα Φ ≡σαδΦτα÷Φ  Ωε∞∩εφσφ≥εΓ JavaBeans ∩ε ±≤≥Φ φσ ε≥δΦ≈ασ≥±  ε≥ ±ετΣαφΦ  ∩≡εΦτΓεδⁿφ√⌡ Java-εß·σΩ≥εΓ, ⌡ε≥  Φ ∞εµσ≥ ΓΩδ■≈α≥ⁿ ≡σαδΦτα÷Φ■ ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ∞σ≥εΣεΓ.

╤ßε≡Ωα ∩≡ΦδεµσφΦΘ Γ√∩εδφ σ≥± , ΩαΩ ∩≡αΓΦδε, Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ, ∩ετΓεδ ■∙σ∞ ∩≡εαφαδΦτΦ≡εΓα≥ⁿ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Ωε∞∩εφσφ≥εΓ, φα±≥≡εΦ≥ⁿ τφα≈σφΦ  ±ΓεΘ±≥Γ, τα≡σπΦ±≥≡Φ≡εΓα≥ⁿ ∩εΣ∩Φ±Ω≤ φα ∩εδ≤≈σφΦσ ±εß√≥ΦΘ, ε≡παφΦτεΓαΓ ≥σ∞ ±α∞√∞ ΓταΦ∞εΣσΘ±≥ΓΦσ Ωε∞∩εφσφ≥εΓ. ╨ατ≡αßε≥≈ΦΩ Ωε∞∩εφσφ≥α ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ ±∩σ÷Φαδⁿφ√σ ∞σ≥εΣ√ Σδ  Φ±∩εδⁿτεΓαφΦ  Φ±Ωδ■≈Φ≥σδⁿφε Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ (φα∩≡Φ∞σ≡, ≡σΣαΩ≥ε≡ ±ΓεΘ±≥Γ).

╩ε∞∩εφσφ≥√ ΓταΦ∞εΣσΘ±≥Γ≤■≥ ∞σµΣ≤ ±εßεΘ Φ ± Φφ±≥≡≤∞σφ≥αδⁿφ√∞ εΩ≡≤µσφΦσ∞. ┬ταΦ∞εΣσΘ±≥ΓΦσ ε±≤∙σ±≥Γδ σ≥±  ΣΓ≤∞  ±∩ε±εßα∞Φ - Γ√τεΓε∞ ∞σ≥εΣεΓ Φ ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥ΦΘ.

╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ε∩Φ±√Γα■≥ ≥εδⁿΩε δεΩαδⁿφεσ ΓταΦ∞εΣσΘ±≥ΓΦσ Ωε∞∩εφσφ≥εΓ, ε±≤∙σ±≥Γδ σ∞εσ Γ ∩≡σΣσδα⌡ εΣφεΘ ΓΦ≡≥≤αδⁿφεΘ Java-∞α°Φφ√. (═α∩ε∞φΦ∞, Γ∩≡ε≈σ∞, ≈≥ε Java-α∩δσ≥√ ≡α±±≈Φ≥αφ√ φα ∩σ≡σΣα≈≤ ∩ε ±σ≥Φ, ≥αΩ ≈≥ε Γετ∞εµφε ±εß≡α≥ⁿ ∩≡ΦδεµσφΦσ Φτ Ωε∞∩εφσφ≥εΓ, ∩σ≡Γεφα≈αδⁿφε ≡α±∩≡σΣσδσφφ√⌡ ∩ε ±σ≥Φ.) ╙Σαδσφφ√σ εß·σΩ≥√ ∞επ≤≥ ±Γ τ√Γα≥ⁿ±  ∩ε ∩≡ε≥εΩεδα∞ α≡⌡Φ≥σΩ≥≤≡√ CORBA [7], ± ∩ε∞ε∙ⁿ■ ≤Σαδσφφεπε Γ√τεΓα ∞σ≥εΣεΓ (Remote Method Invocation - RMI) ΦδΦ Φφ√∞Φ ±∩ε±εßα∞Φ, φσ ε≥φε± ∙Φ∞Φ±  Ω εßδα±≥Φ ΣσΘ±≥ΓΦ  ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans (≡Φ±. 1).

─αδσσ ∞√ ∩εΣ≡εßφε ≡α±±∞ε≥≡Φ∞, ΩαΩ ε∩Φ±αφφ√σ ε±φεΓφ√σ ∩εφ ≥Φ  ≡σαδΦτ≤■≥±  Γ ±≡σΣσ JavaBeans.

4. └⌠Φ°Φ≡εΓαφΦσ Φ Γ√ ±φσφΦσ Φφ≥σ≡⌠σΘ±εΓ

┬ ±≡σΣσ JavaBeans ±≤∙σ±≥Γ≤■≥ ±∩ε±εß√ ΣΦφα∞Φ≈σ±Ωεπε (≥ε σ±≥ⁿ φσ ∩ε Φ±⌡εΣφ√∞ ≥σΩ±≥α∞) Γ√ ±φσφΦ  ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥εΓ. ╩ ≥αΩΦ∞ ⌡α≡αΩ≥σ≡Φ±≥ΦΩα∞ ε≥φε± ≥± :

╧εΣεßφεσ Γ√ ±φσφΦσ Γ ≥σ≡∞ΦφεδεπΦΦ JavaBeans φατ√Γασ≥±  Φφ≥≡ε±∩σΩ÷ΦσΘ*.

╚φ≥≡ε±∩σΩ÷Φ  Φ±∩εδⁿτ≤σ≥±  ∩≡σµΣσ Γ±σπε φα ²≥α∩σ ≡ατ≡αßε≥ΩΦ, Γ ≡α∞Ωα⌡ Φφ±≥≡≤∞σφ≥αδⁿφεπε εΩ≡≤µσφΦ , ∩ετΓεδ   ≤ΓΦΣσ≥ⁿ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Φ ± Φ⌡ ∩ε∞ε∙ⁿ■ φα±≥≡εΦ≥ⁿ Ωε∞∩εφσφ≥ Φ ±Γ τα≥ⁿ σπε ± Σ≡≤πΦ∞Φ ²δσ∞σφ≥α∞Φ ∩≡ΦδεµσφΦ .

╧≡Φφ÷Φ∩Φαδⁿφα  Γετ∞εµφε±≥ⁿ Φφ≥≡ε±∩σΩ÷ΦΦ ß√δα Φτφα≈αδⁿφε ταδεµσφα Γ Java-≥σ⌡φεδεπΦΦ. ╘αΘδ√ Ωδα±±εΓ ±εΣσ≡µα≥ Σε±≥α≥ε≈φε Φφ⌠ε≡∞α÷ΦΦ Σδ  Γ√ ±φσφΦ  Γ±σ⌡ φσεß⌡εΣΦ∞√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ εß·σΩ≥εΓ. ┬ε±∩εδⁿτεΓα≥ⁿ±  ²≥εΘ Φφ⌠ε≡∞α÷ΦσΘ ∞εµφε ± ∩ε∞ε∙ⁿ■ Ωδα±±α Class, ∩αΩσ≥α java.lang.reflect Φ φσΩε≥ε≡√⌡ Σ≡≤πΦ⌡ ±≡σΣ±≥Γ, Ωε≥ε≡√σ ß≤Σ≤≥ ≡α±±∞ε≥≡σφ√ Σαδσσ. ╫≥εß√ ε÷σφΦ≥ⁿ ∩εδφε≥≤ ±ΓσΣσφΦΘ, ∩≡σΣε±≥αΓδ σ∞√⌡ Java-±≡σΣεΘ, ÷σδσ±εεß≡ατφε ≡α±±∞ε≥≡σ≥ⁿ ⌠≡απ∞σφ≥√ ε∩Φ±αφΦΘ Ωδα±±α Class (δΦ±≥Φφπ 1), α ≥αΩµσ Ωδα±±α Method Φτ ∩αΩσ≥α java.lang.reflect (δΦ±≥Φφπ 2).

╥αΩΦ∞ εß≡ατε∞, ≡ατ≡αßε≥≈ΦΩΦ Φ ∩εδⁿτεΓα≥σδΦ Ωε∞∩εφσφ≥εΓ ΓσΣ≤≥ ≡αßε≥≤ Φ±Ωδ■≈Φ≥σδⁿφε Java-±≡σΣ±≥Γα∞Φ. ┴εδσσ ≥επε, Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ≡ατ≡αßε≥≈ΦΩ≤, ≈≥εß√ ±Σσδα≥ⁿ Ωδα±± ∩εδφε÷σφφ√∞ ²δσ∞σφ≥ε∞ ±≡σΣ√ JavaBeans, Σε±≥α≥ε≈φε ∩≡ΦΣσ≡µΦΓα≥ⁿ±  ε∩≡σΣσδσφφεΘ ΣΦ±÷Φ∩δΦφ√ ε∩Φ±αφΦ  ∞σ≥εΣεΓ, φσ ∩≡Φßσπα  Ω  Γφε∞≤ α⌠Φ°Φ≡εΓαφΦ■ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ. ═α∩≡Φ∞σ≡, ∩ε ≤∞εδ≈αφΦ■ Γ ≈Φ±δε α⌠Φ°Φ≡≤σ∞√⌡ ∩ε∩αΣα■≥ Γ±σ public-∞σ≥εΣ√ Ωε∞∩εφσφ≥α.

╤∩ε±εßφε±≥ⁿ Ωε∞∩εφσφ≥α ±≡σΣ√ JavaBeans ∩ε ±≤∙σ±≥Γ≤ ßστ Σε∩εδφΦ≥σδⁿφ√⌡ ≤±ΦδΦΘ ±ε ±≥ε≡εφ√ ≡ατ≡αßε≥≈ΦΩα ∩≡σΣε±≥αΓδ ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ±Γεσ∞ Φφ≥σ≡⌠σΘ±σ φατ√Γασ≥±  ≡σ⌠δσΩ±ΦσΘ. ╨σ⌠δσΩ±Φ  ßατΦ≡≤σ≥±  φα ΣΦ±÷Φ∩δΦφσ ε∩≡σΣσδσφΦ  ∞σ≥εΣεΓ. ▌≥α ΣΦ±÷Φ∩δΦφα ±ε±≥εΦ≥ Γ ±δσΣεΓαφΦΦ ταΣαφφ√∞ °αßδεφα∞ ∩≡Φ Γ√ßε≡σ Φ∞σφ ∞σ≥εΣεΓ, α ≥αΩµσ ≥Φ∩εΓ ⌠ε≡∞αδⁿφ√⌡ ∩α≡α∞σ≥≡εΓ Φ ≡στ≤δⁿ≥α≥εΓ. ─αδσσ, ∩ε ⌡εΣ≤ ΦτδεµσφΦ , ∞√ ß≤Σσ∞ ∩≡ΦΓεΣΦ≥ⁿ ²≥Φ °αßδεφ√.

╤≡σΣα JavaBeans ∩≡εσΩ≥Φ≡εΓαδα±ⁿ ≥αΩΦ∞ εß≡ατε∞, ≈≥εß√ Γ ≥Φ∩Φ≈φ√⌡ ±δ≤≈α ⌡ Φ ΣσΘ±≥ΓΦ  ≡ατ≡αßε≥≈ΦΩεΓ, Φ Γφ≤≥≡σφφ   ≡σαδΦτα÷Φ  ε±≥αΓαδΦ±ⁿ ∩≡ε±≥√∞Φ; Σε∩εδφΦ≥σδⁿφ√σ ≤±ΦδΦ  Φ ≤≥ µσδσφΦσ Ωε∞∩εφσφ≥εΓ Σεδµφ√ ≥≡σßεΓα≥ⁿ±  ≥εδⁿΩε ≥επΣα, ΩεπΣα ²≥επε µσδασ≥ ±α∞ ∩≡επ≡α∞∞Φ±≥. ┬ Σαφφε∞ ±δ≤≈ασ, σ±δΦ ≡ατ≡αßε≥≈ΦΩ≤ φσ ⌡Γα≥ασ≥ Γ√≡ατΦ≥σδⁿφεΘ ±Φδ√ ≡σ⌠δσΩ±ΦΦ, εφ ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ Φφ≥σ≡⌠σΘ± BeanInfo,  Γφ√∞ εß≡ατε∞ ε∩Φ±√Γα■∙ΦΘ α⌠Φ°Φ≡≤σ∞√σ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ Ωε∞∩εφσφ≥α.

╚φ≥σ≡⌠σΘ± BeanInfo ±εΣσ≡µΦ≥ ∞σ≥εΣ√, ∩ετΓεδ ■∙Φσ ∩εδ≤≈Φ≥ⁿ εß·σΩ≥√-ε∩Φ±α≥σδΦ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ Ωε∞∩εφσφ≥α. ┬ ≈Φ±δε ²≥Φ⌡ ∞σ≥εΣεΓ Γ⌡εΣ ≥ getBeanDescriptor, getMethodDescriptors Φ ≥.Σ. (±∞. δΦ±≥ΦφπΦ 3 Φ 4). ╧ε±ΩεδⁿΩ≤ ≡σαδΦτα÷Φ  ∞σ≥εΣεΓ ∞εµσ≥ ß√≥ⁿ ±Ωεδⁿ ≤πεΣφε Φτε∙≡σφφεΘ, ≤ ≡ατ≡αßε≥≈ΦΩα ∩ε Γδ σ≥±  Γετ∞εµφε±≥ⁿ α±±ε÷ΦΦ≡εΓα≥ⁿ ± Ωε∞∩εφσφ≥ε∞ ≡σ±≤≡±√ (φα∩≡Φ∞σ≡, ⌠αΘδ√), ±εΣσ≡µα∙Φσ ε∩Φ±α≥σδⁿφ≤■ Φφ⌠ε≡∞α÷Φ■. ╩δα±± SimpleBeanInfo, Γ⌡εΣ ∙ΦΘ Γ ∩αΩσ≥ java.beans,  Γδ σ≥±  "∩≤±≥εΘ" ≡σαδΦτα÷ΦσΘ Φφ≥σ≡⌠σΘ±α BeanInfo, ε≥≡Φ÷α■∙σΘ φαδΦ≈Φσ ≤ Ωε∞∩εφσφ≥α ΩαΩΦ⌡-δΦßε α⌠Φ°Φ≡≤σ∞√⌡ ∞σ≥εΣεΓ, ±ΓεΘ±≥Γ Φ ±εß√≥ΦΘ. ╨ατ≡αßε≥≈ΦΩ ∞εµσ≥ ±ετΣα≥ⁿ ∩≡εΦτΓεΣφ√Θ Ωδα±± Φ Γ√ßε≡ε≈φε ∩σ≡σε∩≡σΣσδΦ≥ⁿ ∞σ≥εΣ√ Ωδα±±α SimpleBeanInfo.

╩δα±± Introspector ≡σαδΦτ≤σ≥ ∩≡ε÷σ±± Φφ≥≡ε±∩σΩ÷ΦΦ. ╧ε ταΣαφφε∞≤ Ωε∞∩εφσφ≥≤ εφ Ωεφ±≥≡≤Φ≡≤σ≥ εß·σΩ≥ Ωδα±±α BeanInfo (±∞. δΦ±≥Φφπ 5). ─σΘ±≥Γ≤σ≥ Introspector ±δσΣ≤■∙Φ∞ εß≡ατε∞. ╤φα≈αδα εφ ∩√≥ασ≥±  φαΘ≥Φ Ωδα±±, Φ∞  Ωε≥ε≡επε ∩εδ≤≈ασ≥±  Φτ Φ∞σφΦ Ωδα±±α Ωε∞∩εφσφ≥α ∩≡Φ∩Φ±√ΓαφΦσ∞ ≥σΩ±≥α "BeanInfo". ┼±δΦ ≥αΩεΘ Ωδα±± φα⌡εΣΦ≥± , α σπε ∞σ≥εΣ√ ΓετΓ≡α∙α■≥ φσ∩≤±≥√σ Σσ±Ω≡Φ∩≥ε≡√, ±εε≥Γσ≥±≥Γ≤■∙α  Φφ⌠ε≡∞α÷Φ  Φ±∩εδⁿτ≤σ≥±  ∩≡Φ Ωεφ±≥≡≤Φ≡εΓαφΦΦ ≡στ≤δⁿ≥Φ≡≤■∙σπε εß·σΩ≥α BeanInfo. ┬ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ Introspector ∩εδαπασ≥±  φα ∞σ⌡αφΦτ∞ ≡σ⌠δσΩ±ΦΦ Φ αφαδΦτΦ≡≤σ≥ Φ∞σφα Φ ≥Φ∩√ ∩α≡α∞σ≥≡εΓ public-∞σ≥εΣεΓ Ωδα±±α Ωε∞∩εφσφ≥α Φ σπε ∩≡σΣ°σ±≥ΓσφφΦΩεΓ.

╒α≡αΩ≥σ≡φα  ε±εßσφφε±≥ⁿ Java-≥σ⌡φεδεπΦΦ ±ε±≥εΦ≥ Γ φαδΦ≈ΦΦ ±≥≡εΘφεΘ ∞εΣσδΦ ßστε∩α±φε±≥Φ. ╧≡Φ∞σφΦ≥σδⁿφε Ω Φφ≥≡ε±∩σΩ÷ΦΦ ΣσΘ±≥Γ≤■≥ ΣΓα τα∙Φ≥φ√⌡ ≡≤ßσµα:

╩≡ε∞σ ≥επε, α∩δσ≥√ ∩εΣΓσ≡πα■≥±  Σε∩εδφΦ≥σδⁿφε∞≤ Ωεφ≥≡εδ■.

─σ≥αδⁿφ√Θ αφαδΦτ ∞εΣσδΦ ßστε∩α±φε±≥Φ Java Γ√⌡εΣΦ≥ τα ≡α∞ΩΦ ΣαφφεΘ ±≥α≥ⁿΦ. ╟Σσ±ⁿ ∞√ ε≥∞σ≥Φ∞ δΦ°ⁿ, ≈≥ε Ωε∞∩εφσφ≥φα  εß·σΩ≥φα  ±≡σΣα φσ ∩≡ΦΓφε±Φ≥ ΩαΩΦ⌡-δΦßε φεΓ√⌡, ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ≤π≡ετ, ∩ε±ΩεδⁿΩ≤ εφα ∩εδφε±≥ⁿ■ ε∩Φ±√Γασ≥±  Γ ≥σ≡∞Φφα⌡  τ√Ωα Java.

5. ╠σ⌡αφΦτ∞ ±εß√≥ΦΘ

╤επδα±φε ±∩σ÷Φ⌠ΦΩα÷Φ ∞ JavaBeans, ≤ ΩαµΣεπε ±εß√≥Φ  σ±≥ⁿ Φ±≥ε≈φΦΩ Φ, ß√≥ⁿ ∞εµσ≥, εΣΦφ ΦδΦ φσ±ΩεδⁿΩε ∩εΣ∩Φ±≈ΦΩεΓ (∩εδ≤≈α≥σδσΘ).

╚±≥ε≈φΦΩ εß ταφ:

┬ ±Γε■ ε≈σ≡σΣⁿ, ∩εΣ∩Φ±≈ΦΩ Σεδµσφ ∩≡σΣ∩≡Φφ ≥ⁿ ±δσΣ≤■∙Φσ ΣσΘ±≥ΓΦ :

╨α±±∞ε≥≡Φ∞ ∩σ≡σ≈Φ±δσφφ√σ °απΦ ßεδσσ ∩εΣ≡εßφε.

5.1. ─σΘ±≥ΓΦ , Γ√∩εδφ σ∞√σ Φ±≥ε≈φΦΩε∞ ±εß√≥Φ 

╚±≥ε≈φΦΩ ±εß√≥Φ  ∩ε ±Γεσ∞≤ Γ√ßε≡≤ φατφα≈ασ≥ Φ∞  ∞σ≥εΣα, Γ√τ√Γασ∞επε Γ Ωε∞∩εφσφ≥α⌡-∩εΣ∩Φ±≈ΦΩα⌡ ∩≡Φ ≡α±∩≡ε±≥≡αφσφΦΦ ±εß√≥Φ . ╫≥εß√ ±Σσδα≥ⁿ Γετ∞εµφεΘ αΓ≥ε∞α≥Φ≈σ±Ω≤■ Φφ≥≡ε±∩σΩ÷Φ■ Ωε∞∩εφσφ≥εΓ φα ∩≡σΣ∞σ≥ ≡α±∩≡ε±≥≡αφ σ∞√⌡ Φ∞Φ ±εß√≥ΦΘ (≥ε σ±≥ⁿ Σδ  ∩εΣΣσ≡µΩΦ ≡σ⌠δσΩ±ΦΦ), Σαφφ√Θ ∞σ≥εΣ ε∩Φ±√Γασ≥±  Γ ≡α±°Φ≡σφΦΦ ∩≤±≥επε Φφ≥σ≡⌠σΘ±α java.util.EventListener, Φπ≡α■∙σπε ≡εδⁿ ²≥ΦΩσ≥ΩΦ. ╧≡Φ∞σ≡ ≡α±°Φ≡σφΦ  ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 6.

╧ε ±επδα°σφΦ■, ε∩ ≥ⁿ-≥αΩΦ φα∩≡αΓδσφφε∞≤ φα ∩εΣΣσ≡µΩ≤ ≡σ⌠δσΩ±ΦΦ, Φ∞  Φφ≥σ≡⌠σΘ±α-≡α±°Φ≡σφΦ  Σεδµφε εΩαφ≈ΦΓα≥ⁿ±  ÷σ∩ε≈ΩεΘ ±Φ∞ΓεδεΓ "Listener".

┼±δΦ Φ±≥ε≈φΦΩ µσδασ≥ ≡α±∩≡ε±≥≡αφ ≥ⁿ φσ±ΩεδⁿΩε ≡ατδΦ≈φ√⌡ ±εß√≥ΦΘ, Σε∩≤±Ωασ≥±  ε∩Φ±αφΦσ Γ εΣφε∞ Φφ≥σ≡⌠σΘ±σ ±εε≥Γσ≥±≥Γ≤■∙σπε ≈Φ±δα ∞σ≥εΣεΓ Φ⌡ εß≡αßε≥ΩΦ.

╠σ≥εΣ εß≡αßε≥ΩΦ ±εß√≥Φ  Σεδµσφ Φ∞σ≥ⁿ εΣΦφ α≡π≤∞σφ≥, Ωε≥ε≡√∞  Γδ σ≥±  ≥αΩ φατ√Γασ∞√Θ ±εß√≥ΦΘφ√Θ εß·σΩ≥ - ∩≡σσ∞φΦΩ Ωδα±±α java.util. EventObject. ╧ε±≡σΣ±≥Γε∞ ²≥επε εß·σΩ≥α ∩εΣ∩Φ±≈ΦΩ≤ ∩σ≡σΣασ≥±  Φφ⌠ε≡∞α÷Φ  εß Φ±≥ε≈φΦΩσ Φ Σ≡≤πΦσ ⌡α≡αΩ≥σ≡Φ±≥ΦΩΦ ±εß√≥Φ . ╬∩≡σΣσδσφΦσ Ωδα±±α EventObject ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 7. ╦Φ±≥Φφπ 8 ±εΣσ≡µΦ≥ Γετ∞εµφεσ ε∩Φ±αφΦσ Ωδα±±α KeyPressedEvent (εΩεφ≈αφΦσ "Event" - σ∙σ εΣφε ≥≡σßεΓαφΦσ ≡σ⌠δσΩ±ΦΦ).

╨σαδΦτα÷Φ  ∞σ≥εΣεΓ ≡σπΦ±≥≡α÷ΦΦ ∩εΣ∩Φ±≈ΦΩεΓ, αφφ≤δΦ≡εΓαφΦ  ≡σπΦ±≥≡α÷ΦΦ, α ≥αΩµσ ±εß±≥Γσφφε ≡α±∩≡ε±≥≡αφσφΦ  ±εß√≥Φ  ∞εµσ≥ ß√≥ⁿ Γ√∩εδφσφα ±∩ε±εßε∞, ∩≡ΦΓσΣσφφ√∞ φα δΦ±≥Φφπσ 9. ╬≥∞σ≥Φ∞, ≈≥ε ∩≡Φ ≡α±∩≡ε±≥≡αφσφΦΦ ±εß√≥Φ  Γ√τεΓ ∞σ≥εΣεΓ ∩εΣ∩Φ±≈ΦΩεΓ ∩≡εΦτΓεΣΦ≥±  ±Φφ⌡≡εφφ√∞ εß≡ατε∞, Γ ≡α∞Ωα⌡ ∩ε≥εΩα Φ±≥ε≈φΦΩα ±εß√≥Φ .

╬ß≡α≥Φ∞ ΓφΦ∞αφΦσ φα ΣΓα α±∩σΩ≥α ∩≡επ≡α∞∞φεπε ≥σΩ±≥α, ∩≡ΦΓσΣσφφεπε φα δΦ±≥Φφπσ 9. ┬ε-∩σ≡Γ√⌡, Γ Φ±≥ε≈φΦΩσ φσεß⌡εΣΦ∞ε εßσ±∩σ≈Φ≥ⁿ ßστε∩α±φε±≥ⁿ ≡αßε≥√ Γ ∞φεπε∩ε≥εΩεΓεΘ ±≡σΣσ. ╠σ≥εΣ√ add/remove Γ√∩εδφ ■≥±  Γ ≡α∞Ωα⌡ ∩ε≥εΩεΓ ∩εΣ∩Φ±≈ΦΩεΓ, ∩ε²≥ε∞≤ εφΦ φ≤µΣα■≥±  Γ ±Φφ⌡≡εφΦτα÷ΦΦ. ┬ ∞σ≥εΣσ fire ≥αΩµσ ±δσΣ≤σ≥ ≤≈Φ≥√Γα≥ⁿ Γετ∞εµφε±≥ⁿ ≡σπΦ±≥≡α÷Φεφφ√⌡ ΣσΘ±≥ΓΦΘ ∩α≡αδδσδⁿφε ± ≡α±∩≡ε±≥≡αφσφΦσ∞ ±εß√≥Φ . ╬≥±■Σα ≥≡Φ Γ⌡εµΣσφΦ  Ωδ■≈σΓεπε ±δεΓα synchronized.

┬ε-Γ≥ε≡√⌡, ≡σπΦ±≥≡α÷Φεφφ√σ ∞σ≥εΣ√ Σεδµφ√ ∩εΣΣσ≡µΦΓα≥ⁿ ≡σ⌠δσΩ±Φ■ Φ ε∩≡σΣσδ ≥ⁿ±  ∩ε ±δσΣ≤■∙Φ∞ °αßδεφα∞:

      public void add<Φ∞  Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > 
                    (<Φ∞  Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > ∩εΣ∩Φ±≈ΦΩ);
      public void remove<Φ∞  Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > 
                       (<Φ∞  Φφ≥σ≡⌠σΘ±α ±εß√≥Φ > ∩εΣ∩Φ±≈ΦΩ);

╬∩≡σΣσδσφΦσ ∞σ≥εΣα fire - Γφ≤≥≡σφφσσ Σσδε Φ±≥ε≈φΦΩα ±εß√≥Φ .

5.2. ─σΘ±≥ΓΦ , Γ√∩εδφ σ∞√σ ∩εΣ∩Φ±≈ΦΩε∞ ±εß√≥Φ 

╨σαδΦτα÷Φ  Φφ≥σ≡⌠σΘ±α ±εß√≥Φ  - ε±φεΓφεσ ΣσΘ±≥ΓΦσ, Γ√∩εδφ σ∞εσ ∩εΣ∩Φ±≈ΦΩε∞. ┼πε ±εΣσ≡µα≥σδⁿφα  ±≥ε≡εφα ταΓΦ±Φ≥ ε≥ ±∩σ÷Φ⌠ΦΩΦ ∩εΣ∩Φ±≈ΦΩα. ╫Φ±≥ε ≥σ⌡φΦ≈σ±ΩΦσ ∞ε∞σφ≥√ ε≥≡αµσφ√ φα δΦ±≥Φφπσ 10.

╨σπΦ±≥≡α÷Φ  ∩εΣ∩Φ±ΩΦ ∩≡εΦτΓεΣΦ≥±  εß≡α∙σφΦσ∞ Ω ±εε≥Γσ≥±≥Γ≤■∙σ∞≤ add-∞σ≥εΣ≤ Φ±≥ε≈φΦΩα ±εß√≥Φ .

╬ß∙α  ±⌡σ∞α ΓταΦ∞εΣσΘ±≥ΓΦ  Φ±≥ε≈φΦΩα Φ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥Φ  ∩≡σΣ±≥αΓδσφα φα ≡Φ±. 2. ┼±δΦ ∩≡εΓεΣΦ≥ⁿ αφαδεπΦ■ ± εß√≈φεΘ ∩εΣ∩Φ±ΩεΘ φα πατσ≥√ Φ µ≤≡φαδ√, ≥ε ßατεΓ√Θ ∞σ⌡αφΦτ∞, ε∩Φ±αφφ√Θ Γ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ JavaBeans, ±εε≥Γσ≥±≥Γ≤σ≥ ε⌠ε≡∞δσφΦ■ ∩εΣ∩Φ±ΩΦ Γ ≡σΣαΩ÷ΦΦ ΩαµΣεπε ΦτΣαφΦ  (α φσ Γ ε≥ΣσδσφΦΦ ±Γ τΦ). ┬ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ ≤∩ε∞Φφασ≥±  ≥αΩµσ ε Γετ∞εµφε±≥Φ ≡σαδΦτα÷ΦΦ αΣα∩≥σ≡εΓ - ∩ε±≡σΣφΦΩεΓ, ßσ≡≤∙Φ⌡ φα ±σß  ÷σφ≥≡αδΦτεΓαφφεσ ε⌠ε≡∞δσφΦσ ∩εΣ∩Φ±ΩΦ Φ ≡σαδΦτα÷Φ■ ε∩≡σΣσδσφφεΘ ΣΦ±÷Φ∩δΦφ√ ≡α±∩≡ε±≥≡αφσφΦ  ±εß√≥ΦΘ. ╧≡Φ φαδΦ≈ΦΦ αΣα∩≥σ≡α ±⌡σ∞α ΓταΦ∞εΣσΘ±≥ΓΦ  Φ±≥ε≈φΦΩεΓ Φ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥ΦΘ ∞εµσ≥ Γ√πδ Σσ≥ⁿ ≥αΩ, ΩαΩ ∩εΩαταφε φα ≡Φ±. 3. ╬≈σΓΦΣφε, ∩εΣεßφα  ±⌡σ∞α εßδσπ≈ασ≥ µΦτφⁿ Γ±σ∞ ΓταΦ∞εΣσΘ±≥Γ≤■∙Φ∞ ±≥ε≡εφα∞ (φσ ±≈Φ≥α  αΣα∩≥σ≡α, Ωε≥ε≡√Θ φσεß⌡εΣΦ∞ε ≡σαδΦτεΓα≥ⁿ).

╧≡Φ ≤±≥αφεΓδσφΦΦ ΓταΦ∞εΣσΘ±≥ΓΦ  ∞σµΣ≤ Φ±≥ε≈φΦΩα∞Φ Φ ∩εΣ∩Φ±≈ΦΩα∞Φ ±εß√≥ΦΘ τφα≈Φ≥σδⁿφα  ≈α±≥ⁿ ≡αßε≥√ ∞εµσ≥ ß√≥ⁿ Γ√∩εδφσφα Φφ±≥≡≤∞σφ≥αδⁿφεΘ ±≡σΣεΘ. ▌≥α ±≡σΣα ∞εµσ≥ ±πσφσ≡Φ≡εΓα≥ⁿ ΩεΣ, ±εΣσ≡µα∙ΦΘ εß≡α∙σφΦσ Ω add-∞σ≥εΣα∞, εßσ±∩σ≈Φ≥ⁿ ±επδα±εΓαφφε±≥ⁿ φατΓαφΦΘ ∞σ≥εΣεΓ εß≡αßε≥ΩΦ ±εß√≥ΦΘ, ±πσφσ≡Φ≡εΓαΓ ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ Γ±∩ε∞επα≥σδⁿφ√σ Ωδα±±√, Φ ≥.∩.

5.3. ═σΩε≥ε≡√σ Ωε∞∞σφ≥α≡ΦΦ

╧≡Φ ∩≡εσΩ≥Φ≡εΓαφΦΦ ∞σ⌡αφΦτ∞α ±εß√≥ΦΘ ≡ατ≡αßε≥≈ΦΩα∞ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans ∩≡Φ°δε±ⁿ ≤≈Φ≥√Γα≥ⁿ ÷σδ≤■ πα∞∞≤ ≥≡σßεΓαφΦΘ:

╥αΩΦ∞ εß≡ατε∞, ταΣα≈α ∩σ≡σΣ ≡ατ≡αßε≥≈ΦΩα∞Φ ±≥ε δα ≥≡≤Σφα , Φ, φα φα° Γτπδ Σ, εφΦ φσ ±≤∞σδΦ φαΘ≥Φ Σε±≥α≥ε≈φε ⌡ε≡ε°σπε ≡σ°σφΦ , Σε∩≤±≥ΦΓ ≡ Σ ∞σ≥εΣεδεπΦ≈σ±ΩΦ⌡ ∩≡ε±≈σ≥εΓ.

┼±δΦ σ±≥ⁿ ±Φ±≥σ∞α, ±εΣσ≡µα∙α  n Φ±≥ε≈φΦΩεΓ ±εß√≥ΦΘ Φ m ∩εΣ∩Φ±≈ΦΩεΓ, ≥ε ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ßατεΓεπε ∞σ⌡αφΦτ∞α ≈Φ±δε ±Γ τσΘ, Ωε≥ε≡√σ φσεß⌡εΣΦ∞ε ∩εΣΣσ≡µΦΓα≥ⁿ, Φ∞σσ≥ ∩ε≡ ΣεΩ n * m. ▌≥ε ∞φεπε. ═α∩ε∞φΦ∞, ≈≥ε εΣφΦ∞ Φτ ε±φεΓφ√⌡ ∩εß≤ΣΦ≥σδⁿφ√⌡ ∞ε≥ΦΓεΓ ≡ατΓΦ≥Φ  εß·σΩ≥φ√⌡ ≥σ⌡φεδεπΦΘ ß√δε ∩εφΦµσφΦσ Γφ≤≥≡σφφσΘ ±δεµφε±≥Φ ∩≡επ≡α∞∞φ√⌡ ±Φ±≥σ∞ ∩≤≥σ∞ εßσ±∩σ≈σφΦ  ε≥φε±Φ≥σδⁿφεΘ φσταΓΦ±Φ∞ε±≥Φ Ωε∞∩εφσφ≥εΓ. ╚±∩εδⁿτεΓαφΦσ αΣα∩≥σ≡εΓ ∩ετΓεδ σ≥ ≤∞σφⁿ°Φ≥ⁿ ΩεδΦ≈σ±≥Γε ±Γ τσΘ Σε ΓσδΦ≈Φφ√ ∩ε≡ ΣΩα n + m, εΣφαΩε εφε φ≤µΣασ≥±  Γ ±≥αφΣα≡≥Φτα÷ΦΦ.

╧≡σΣδαπασ∞√Θ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ ∩δε⌡ε ∩α≡α∞σ≥≡Φτ≤σ≥± , ∩≡σµΣσ Γ±σπε ∩ε≥ε∞≤, ≈≥ε Φ∞σφα ∞σ≥εΣεΓ εß≡αßε≥ΩΦ ⌠ΦΩ±Φ≡≤■≥±  φα ≤≡εΓφσ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ. ╚τ-τα ²≥επε ≥≡≤Σφε ∩Φ±α≥ⁿ ∩≡επ≡α∞∞√, ±Φ±≥σ∞α≥Φ≈σ±ΩΦ εß≡αßα≥√Γα■∙Φσ ≡ατδΦ≈φ√σ ±εß√≥Φ . ╧≡Φ⌡εΣΦ≥±  ΩαΩ ∞ΦφΦ∞≤∞ φα≡α∙ΦΓα≥ⁿ εß·σ∞ ∩≡επ≡α∞∞, ≈≥ε Γ±≥≤∩ασ≥ Γ ∩≡ε≥ΦΓε≡σ≈Φσ ± ε±φεΓφ√∞Φ ∩εδεµσφΦ ∞Φ Java-≥σ⌡φεδεπΦΦ.

╧≡ε±≥≡αφ±≥Γε ±εß√≥ΦΘ φσ ±≥≡≤Ω≥≤≡Φ≡εΓαφε, ⌡ε≥  φσΩε≥ε≡√σ ΣσΘ±≥ΓΦ  Γ φσΩε≥ε≡√⌡ ≈α±≥ ⌡ ±≡σΣ√ Java (φα∩≡Φ∞σ≡, Γ αß±≥≡αΩ≥φε∞ εΩεφφε∞ Φφ±≥≡≤∞σφ≥α≡ΦΦ, AWT) Γ ²≥ε∞ φα∩≡αΓδσφΦΦ ∩≡σΣ∩≡Φφ ≥√. ┬ετ∞εµφε±≥ⁿ Φσ≡α≡⌡Φ≈σ±ΩεΘ ε≡παφΦτα÷ΦΦ ²δσ∞σφ≥εΓ - εΣφε Φτ φσεß⌡εΣΦ∞√⌡ ≤±δεΓΦΘ ≤±∩σ°φεπε ±ετΣαφΦ  Φ ±ε∩≡εΓεµΣσφΦ  ±δεµφ√⌡ ±Φ±≥σ∞. ╟Σσ±ⁿ ²≥ε ≤±δεΓΦσ φα≡≤°σφε (Ωεφσ≈φε µσ, Φσ≡α≡⌡ΦΦ Ωδα±±εΓ Γ Σαφφε∞ ±δ≤≈ασ φσΣε±≥α≥ε≈φε).

╤ΩδαΣ√Γασ≥±  Γ∩σ≈α≥δσφΦσ, ≈≥ε Γ ∩≡σΣδαπασ∞ε∞ ΓΦΣσ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ  Γδ σ≥±  ±δΦ°Ωε∞ ∩≡ε±≥√∞, Γ φσ∞ φσ ⌡Γα≥ασ≥ ≡ Σα ∩εφ ≥ΦΘ. ╧ε ±≤∙σ±≥Γ≤ ²≥ε ±∩ε±εß ΣΦ±∩σ≥≈σ≡Φτα÷ΦΦ Γ√τεΓεΓ ∞σ≥εΣεΓ. ╩αΩα -δΦßε "±εß√≥ΦΘφε±≥ⁿ" Γ ≥αΩεΘ ≥≡αΩ≥εΓΩσ ∩ε∩≡ε±≥≤ ε≥±≤≥±≥Γ≤σ≥. ╬ß√≈φε ±εß√≥Φ  ΓετφΦΩα■≥ ± ≈α±≥ε≥εΘ, ε∩≡σΣσδ σ∞εΘ ⌠αΩ≥ε≡α∞Φ, Γφσ°φΦ∞Φ ∩ε ε≥φε°σφΦ■ Ω ∩≡επ≡α∞∞φεΘ ±Φ±≥σ∞σ, ≥αΩ ≈≥ε φσεß⌡εΣΦ∞ε ∞ΦφΦ∞ΦτΦ≡εΓα≥ⁿ ∩ε Ω≡αΘφσΘ ∞σ≡σ Γ≡σ∞  ≡α±∩≡ε±≥≡αφσφΦ  ±εß√≥Φ . ╧≡Φ ∩≡σΣδαπασ∞ε∞ ±Φφ⌡≡εφφε∞ Γ√τεΓσ ∞σ≥εΣεΓ ε÷σφΦ≥ⁿ Γ≡σ∞  ≡α±∩≡ε±≥≡αφσφΦ  φσ ∩≡σΣ±≥αΓδ σ≥±  Γετ∞εµφ√∞. ┴εδσσ ≥επε, φσεß⌡εΣΦ∞ε ∩εταßε≥Φ≥ⁿ±  ε ∩≡ε≥ΦΓεΣσΘ±≥ΓΦΦ α≥αΩα∞ φα Σε±≥≤∩φε±≥ⁿ, ∩≡εΦτΓεΣΦ∞√∞ ∩≤≥σ∞ ≡σπΦ±≥≡α÷ΦΦ ∩εΣ∩Φ±≈ΦΩα, ∞σ≥εΣ εß≡αßε≥ΩΦ Ωε≥ε≡επε φσ ΓετΓ≡α∙ασ≥ ≤∩≡αΓδσφΦ . ╫α±≥ⁿ ²≥Φ⌡ ∩≡εßδσ∞ ∞εµφε ≡σ°Φ≥ⁿ, ≡σαδΦτεΓαΓ Φφ≥σδδσΩ≥≤αδⁿφ√Θ ∞φεπε∩ε≥εΩεΓ√Θ αΣα∩≥σ≡, φε ≥επΣα ∩≡ΦΣσ≥±  ε≥Σσδⁿφε ≡σ°α≥ⁿ Γε∩≡ε±√ ßστε∩α±φε±≥Φ, ≥αΩ ΩαΩ ≡ Σ τα∙Φ≥φ√⌡ ∞σ≡ Γ Java-≥σ⌡φεδεπΦΦ ε±φεΓαφ φα ∩≡ε±δσµΦΓαφΦΦ ±≥σΩα Γ√τεΓεΓ, Φ ε∩α±φε±≥ⁿ ∞εµσ≥ π≡ετΦ≥ⁿ ±ε ±≥ε≡εφ√ τδεΓ≡σΣφεπε Φ±≥ε≈φΦΩα ±εß√≥ΦΘ.

╧≡Φ ∩εΣπε≥εΓΩσ ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans ∩≡Φ°δε±ⁿ ∩σ≡σ±∞ε≥≡σ≥ⁿ ∞σ⌡αφΦτ∞ ±εß√≥ΦΘ, ∩σ≡Γεφα≈αδⁿφε ∩≡σΣ≤±∞α≥≡ΦΓαΓ°ΦΘ±  αß±≥≡αΩ≥φ√∞ εΩεφφ√∞ Φφ±≥≡≤∞σφ≥α≡Φσ∞. ┬σ±ⁿ∞α Γετ∞εµφε, ≈≥ε Φ Γσ≡±Φ  1.01 ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans φσ  Γδ σ≥±  Γ ²≥ε∞ ±∞√±δσ εΩεφ≈α≥σδⁿφεΘ. ┬∩≡ε≈σ∞, Σδ  ±Φ±≥σ∞ φσßεδⁿ°επε Φ ±≡σΣφσπε ∞α±°≥αßα εφα ∩≡σΣ±≥αΓδ σ≥±  Γ∩εδφσ ≤ΣεΓδσ≥Γε≡Φ≥σδⁿφεΘ.

6. ╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ

╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ (≥αΩΦσ ΩαΩ ÷Γσ≥ Φτεß≡αµσφΦ , ≡ατ∞σ≡ Φ ≥.∩.) ∞εµφε ∩≡σΣ±≥αΓδ ≥ⁿ ±σßσ Γ ΓΦΣσ ∩εδσΘ εß·σΩ≥εΓ; Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ≥αΩ εφΦ Φ ≡σαδΦτ≤■≥± . ╥σ∞ φσ ∞σφσσ, ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans, Γ ±εε≥Γσ≥±≥ΓΦΦ ± ∩ε±δσΣεΓα≥σδⁿφ√∞ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√∞ ∩εΣ⌡εΣε∞, ∩≡σΣ≤±∞α≥≡ΦΓα■≥ Σε±≥≤∩ Ω ±ΓεΘ±≥Γα∞ ≥εδⁿΩε ∩ε±≡σΣ±≥Γε∞ ±∩σ÷Φαδⁿφ√⌡ ∞σ≥εΣεΓ Γ√ßε≡ΩΦ Φ ≤±≥αφεΓΩΦ, ≥αΩ ≈≥ε Γ ∩≡Φφ÷Φ∩σ ±ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ ≤±≥≡εσφ√ ±Ωεδⁿ ≤πεΣφε ±δεµφ√∞ εß≡ατε∞.

╠σµΣ≤ ±ΓεΘ±≥Γα∞Φ ≡ατφ√⌡ Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ±≤∙σ±≥ΓεΓα≥ⁿ ±Γ τΦ ΣΓε Ωεπε ≡εΣα. ┬ε-∩σ≡Γ√⌡, ∩≡Φ Φτ∞σφσφΦΦ εΣφεπε ±ΓεΘ±≥Γα ∞εµσ≥ ∩ε≥≡σßεΓα≥ⁿ±  ∞εΣΦ⌠ΦΩα÷Φ  Σ≡≤πΦ⌡ ±ΓεΘ±≥Γ ΦδΦ Φφ√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ. ╥αΩΦσ ±ΓεΘ±≥Γα φατ√Γα■≥±  ±Γ ταφφ√∞Φ. ┬ε-Γ≥ε≡√⌡, φσΩε≥ε≡√σ Φτ∞σφσφΦ  ∞επ≤≥ ≥≡αΩ≥εΓα≥ⁿ±  ΩαΩ φσΩε≡≡σΩ≥φ√σ Φ τα∩≡σ∙α≥ⁿ± . ╤εε≥Γσ≥±≥Γ≤■∙Φσ ±ΓεΘ±≥Γα φατ√Γα■≥±  επ≡αφΦ≈σφφ√∞Φ. ╥σ∞ ±α∞√∞ ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ∩≡σΣε±≥αΓδ ■≥ ±≡σΣ±≥Γα Ωεφ≥≡εδ  ÷σδε±≥φε±≥Φ εß·σΩ≥φεΘ ±≡σΣ√.

╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ∩εΣΓσ≡πα≥ⁿ±  φα±≥≡εΘΩσ. ╬ß√≈φε φα±≥≡εΘΩα ∩≡εΦτΓεΣΦ≥±  Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ ∩≡Φ ±ßε≡Ωσ ∩≡ΦδεµσφΦΘ, εΣφαΩε, Γεεß∙σ πεΓε≡ , εφα ∞εµσ≥ ε±≤∙σ±≥Γδ ≥ⁿ±  Φ Γε Γ≡σ∞  Γ√∩εδφσφΦ .

╧σ≡σΘΣσ∞ Ω Σσ≥αδⁿφε∞≤ ≡α±±∞ε≥≡σφΦ■ τα Γδσφφ√⌡ ≥σ∞.

6.1. ╠σ≥εΣ√ Φ ±εß√≥Φ , α±±ε÷ΦΦ≡εΓαφφ√σ ±ε ±ΓεΘ±≥Γα∞Φ

╤ΓεΘ±≥Γα Ωε∞∩εφσφ≥εΓ ∞επ≤≥ ß√≥ⁿ ±Ωαδ ≡φ√∞Φ Φ ΦφΣσΩ±Φ≡≤σ∞√∞Φ. ┬√ßε≡Ωα Φ ≤±≥αφεΓΩα ±Ωαδ ≡φ√⌡ ±ΓεΘ±≥Γ ε±≤∙σ±≥Γδ σ≥±  ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣεΓ get/set:

       public <≥Φ∩_±ΓεΘ±≥Γα> get<Φ∞ _±ΓεΘ±≥Γα> (); 
       public void set<Φ∞ _±ΓεΘ±≥Γα> (<≥Φ∩_±ΓεΘ±≥Γα> p);
       (≥αΩεΘ °αßδεφ ταπεδεΓΩεΓ ∞σ≥εΣεΓ φσεß⌡εΣΦ∞ Σδ  ∩εΣΣσ≡µΩΦ ≡σ⌠δσΩ±ΦΦ).

═α∩≡Φ∞σ≡, σ±δΦ ±ΓεΘ±≥Γε∞ Ωε∞∩εφσφ≥α  Γδ σ≥±  ÷Γσ≥, ±εε≥Γσ≥±≥Γ≤■∙Φσ ∞σ≥εΣ√ ∞επ≤≥ ε∩Φ±√Γα≥ⁿ±  ΩαΩ

       public Color getColor (); 
       public void setColor (Color c);
       (Ωδα±± Color ε∩≡σΣσδ σ≥±  Γ ∩αΩσ≥σ java.awt).

╬±εß√Θ °αßδεφ ∩≡σΣ≤±∞ε≥≡σφ Σδ  Γ√ßε≡ΩΦ ß≤δσΓ√⌡ ±ΓεΘ±≥Γ:

       public boolean is<Φ∞ _±ΓεΘ±≥Γα> ();

┬εεß∙σ πεΓε≡ , ±ΓεΘ±≥Γα ∞επ≤≥ ß√≥ⁿ Σε±≥≤∩φ√ ≥εδⁿΩε φα ≈≥σφΦσ ΦδΦ ≥εδⁿΩε φα τα∩Φ±ⁿ; ≥επΣα Σδ  φΦ⌡ ε∩≡σΣσδ σ≥±  δΦ°ⁿ εΣΦφ Φτ ∞σ≥εΣεΓ - get ΦδΦ set ±εε≥Γσ≥±≥Γσφφε.

╚φΣσΩ±Φ≡≤σ∞√σ ±ΓεΘ±≥Γα εß≡ατ≤■≥ ∞α±±ΦΓ√ ± ÷σδε≈Φ±δσφφ√∞Φ ΦφΣσΩ±α∞Φ. ╤ ²≥Φ∞Φ ∞α±±ΦΓα∞Φ ∞εµφε ≡αßε≥α≥ⁿ ∩εΩε∞∩εφσφ≥φε ΦδΦ ΩαΩ ± σΣΦφ√∞ ÷σδ√∞. ╪αßδεφ√ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ ∞σ≥εΣεΓ Φ Φ⌡ ∩≡Φ∞σ≡√ ∩≡ΦΓσΣσφ√ φα δΦ±≥Φφπσ 11 (∩εΣ <≥Φ∩ε∞_±ΓεΘ±≥Γα> τΣσ±ⁿ ∩εφΦ∞ασ≥±  ≥Φ∩ ²δσ∞σφ≥α ∞α±±ΦΓα).

╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ∩≡σΣ≤±∞α≥≡ΦΓα■≥ φαδΦ≈Φσ ±Γ ταφφ√⌡ ±ΓεΘ±≥Γ, ∩ε±δσ Φτ∞σφσφΦ  Ωε≥ε≡√⌡ Γετß≤µΣασ≥±  ±εß√≥Φσ propertyChange. ─≡≤πΦσ Ωε∞∩εφσφ≥√ ∞επ≤≥ ∩εΣ∩Φ±α≥ⁿ±  φα ²≥ε ±εß√≥Φσ Φ, ±δσΣεΓα≥σδⁿφε, ∩εδ≤≈α≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ∩≡εΦτΓεΣΦ∞√⌡ Φτ∞σφσφΦ ⌡, αφαδΦτΦ≡≤  εß·σΩ≥-∩α≡α∞σ≥≡ PropertyChangeEvent, ⌠≡απ∞σφ≥ ε∩Φ±αφΦ  Ωε≥ε≡επε ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 12.

╠σ≥εΣ propertyChange, Γ√τ√Γασ∞√Θ Σδ  εß≡αßε≥ΩΦ Φτ∞σφσφΦ  τφα≈σφΦ  ±ΓεΘ±≥Γα, ε∩Φ±αφ Γ Φφ≥σ≡⌠σΘ±σ PropertyChangeListener (δΦ±≥Φφπ 13). ╚±≥ε≈φΦΩ ±εß√≥Φ , Γ ±εε≥Γσ≥±≥ΓΦΦ ± εß∙Φ∞Φ ∩≡αΓΦδα∞Φ (±∞. ≡ατΣσδ "╠σ⌡αφΦτ∞ ±εß√≥ΦΘ"), Σεδµσφ ≡σαδΦτεΓα≥ⁿ ∞σ≥εΣ√ addPropertyChangeListener Φ removePropertyChangeListener, εßσ±∩σ≈ΦΓα  ≡σπΦ±≥≡α÷Φ■ ∩εΣ∩Φ±≈ΦΩεΓ.

┬±∩ε∞επα≥σδⁿφ√Θ Ωδα±± PropertyChangeSupport, Γ⌡εΣ ∙ΦΘ Γ ∩αΩσ≥ java.beans, ≡σαδΦτ≤σ≥ ≡≤≥Φφφ√σ ΣσΘ±≥ΓΦ , ⌡α≡αΩ≥σ≡φ√σ Σδ  εß±δ≤µΦΓαφΦ  ±Γ ταφφ√⌡ ±ΓεΘ±≥Γ (±∞. δΦ±≥Φφπ 14). ┼±≥σ±≥Γσφφε, ≡ατ≡αßε≥≈ΦΩΦ Ωε∞∩εφσφ≥εΓ ∞επ≤≥ Γε±∩εδⁿτεΓα≥ⁿ±  ²≥Φ∞ Ωδα±±ε∞.

╧ε∞Φ∞ε ±Γ ταφφ√⌡, ±∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ε∩Φ±√Γα■≥ επ≡αφΦ≈σφφ√σ ±ΓεΘ±≥Γα, ∩σ≡σΣ Φτ∞σφσφΦσ∞ τφα≈σφΦΘ Ωε≥ε≡√⌡ ≡α±∩≡ε±≥≡αφ σ≥±  ±εß√≥Φσ vetoableChange ± ∩α≡α∞σ≥≡ε∞ PropertyChangeEvent. ╧εΣ∩Φ±≈ΦΩΦ ²≥επε ±εß√≥Φ  ∞επ≤≥ ε≥ΩδεφΦ≥ⁿ ∩δαφΦ≡≤σ∞εσ Φτ∞σφσφΦσ, Γετß≤ΣΦΓ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ PropertyVetoException. ╠σ≥εΣ set Σεδµσφ ε≥≡σαπΦ≡εΓα≥ⁿ φα ∩εΣεßφεσ Γσ≥ε, Γσ≡φ≤Γ ∩≡σµφσσ τφα≈σφΦσ, "ΦτΓΦφΦΓ°Φ±ⁿ" ∩σ≡σΣ ≤µσ ε∩εΓσ∙σφφ√∞Φ ∩εΣ∩Φ±≈ΦΩα∞Φ (≥ε σ±≥ⁿ Γ√τΓαΓ Φ⌡ ∞σ≥εΣ√ vetoableChange ± εß≡α≥φεΘ ∩α≡εΘ φεΓεσ/±≥α≡εσ τφα≈σφΦσ) Φ ∩σ≡σΣαΓ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ ΦφΦ÷Φα≥ε≡≤ Φτ∞σφσφΦ . ╤εε≥Γσ≥±≥Γσφφε, ταπεδεΓεΩ set-∞σ≥εΣα Σδ  επ≡αφΦ≈σφφ√⌡ ±ΓεΘ±≥Γ ∩≡Φεß≡σ≥ασ≥ ±δσΣ≤■∙ΦΘ ΓΦΣ:

      public void set<Φ∞ _±ΓεΘ±≥Γα> (<≥Φ∩_±ΓεΘ±≥Γα> p) throws PropertyVetoException;

╤Φφ≥αΩ±Φ≈σ±ΩΦ ±Γ ταφφ√σ Φ επ≡αφΦ≈σφφ√σ ±ΓεΘ±≥Γα αφαδεπΦ≈φ√, φε ≡σαδΦτα÷Φ  ∩ε±δσΣφΦ⌡ ≥≡σß≤σ≥ πε≡ατΣε ßεδⁿ°σΘ αΩΩ≤≡α≥φε±≥Φ Φ ε≥ Φ±≥ε≈φΦΩεΓ (set-∞σ≥εΣεΓ), Φ ε≥ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥Φ  vetoableChange. ╚±≥ε≈φΦΩ≤ ≡σΩε∞σφΣ≤σ≥±  Γε±∩εδⁿτεΓα≥ⁿ±  Γ±∩ε∞επα≥σδⁿφ√∞ Ωδα±±ε∞ java.beans.VetoableChangeSupport, αΩΩ≤≡α≥φε Γ√∩εδφ ■∙Φ∞ Γ±σ φσεß⌡εΣΦ∞√σ ΣσΘ±≥ΓΦ . ╧εΣ∩Φ±≈ΦΩα∞ ß≤Σσ≥ ∩≡ε∙σ, σ±δΦ ±Σσδα≥ⁿ ±ΓεΘ±≥Γε Φ επ≡αφΦ≈σφφ√∞, Φ ±Γ ταφφ√∞. ┬ ≥αΩε∞ ±δ≤≈ασ Σε Φτ∞σφσφΦ  (∩≡Φ εß≡αßε≥Ωσ ±εß√≥Φ  vetoableChange) ∩εΣ∩Φ±≈ΦΩΦ ταßε≥ ≥±  ≥εδⁿΩε ε πεδε±εΓαφΦΦ "τα" Φ "∩≡ε≥ΦΓ", α ∩ε±δσ Φτ∞σφσφΦ  (∩≡Φ εß≡αßε≥Ωσ ±εß√≥Φ  propertyChange) εφΦ Γ√ ±φ ■≥, ΩαΩΦ∞ µσ ±≥αδε φεΓεσ τφα≈σφΦσ.

6.2. ═α±≥≡εΘΩα ±ΓεΘ±≥Γ

╩ε∞∩εφσφ≥ εß·σΩ≥φεΘ ±≡σΣ√ ε±εßσφφε ∩εδστσφ ≥επΣα, ΩεπΣα σπε ∞εµφε φα±≥≡εΦ≥ⁿ. ╬ß√≈φε φα±≥≡εΘΩα Γ√∩εδφ σ≥±  Γε Γ≡σ∞  ±ßε≡ΩΦ ∩≡ΦδεµσφΦ  Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ.

─δ  φσ±δεµφ√⌡ Ωε∞∩εφσφ≥εΓ ∞εµφε ∩≡σΣ±≥αΓΦ≥ⁿ ±σßσ ±⌡σ∞≤ φα±≥≡εΘΩΦ, ∩≡Φ Ωε≥ε≡εΘ εΩ≡≤µσφΦσ ∩≤≥σ∞ Φφ≥≡ε±∩σΩ÷ΦΦ Γ√ Γδ σ≥ α⌠Φ°Φ≡≤σ∞√σ ±ΓεΘ±≥Γα Φ ∩ε≡εµΣασ≥ ²δσΩ≥≡εφφ√Θ ßδαφΩ, ΩαµΣα  Ωδσ≥Ωα Ωε≥ε≡επε ±εε≥Γσ≥±≥Γ≤σ≥ εΣφε∞≤ ±ΓεΘ±≥Γ≤. ╨σΣαΩ≥Φ≡εΓαφΦσ ±εΣσ≡µΦ∞επε Ωδσ≥ΩΦ Γ√∩εδφ σ≥±  ±εε≥Γσ≥±≥Γ≤■∙Φ∞ ≡σΣαΩ≥ε≡ε∞ ±ΓεΘ±≥Γα. ╨σΣαΩ≥ε≡√ ±ΓεΘ±≥Γ, ∩≡ΦφαΣδσµα∙Φ⌡ ±≥αφΣα≡≥φ√∞ ≥Φ∩α∞, Γ⌡εΣ ≥ Γ Java-εΩ≡≤µσφΦσ; Γ ßεδσσ ±δεµφ√⌡ ±δ≤≈α ⌡ Σεδµσφ ±≤∙σ±≥ΓεΓα≥ⁿ ±∩σ÷ΦαδΦτΦ≡εΓαφφ√Θ ≡σΣαΩ≥ε≡, ∩ε±≥αΓδ σ∞√Θ ± Ωε∞∩εφσφ≥ε∞ ΦδΦ ± Φφ±≥≡≤∞σφ≥αδⁿφ√∞ εΩ≡≤µσφΦσ∞.

╩δα±±-≡σΣαΩ≥ε≡ ±ΓεΘ±≥Γα Σεδµσφ ≡σαδΦτεΓ√Γα≥ⁿ Φφ≥σ≡⌠σΘ± PropertyEditor (±∞. δΦ±≥Φφπ 15). ╬ß τα≥σδⁿφ√∞Φ Σδ  ≡σαδΦτα÷ΦΦ  Γδ ■≥±  ∞σ≥εΣ setValue () Φ εΣΦφ Φτ ∞σ≥εΣεΓ ∩≡ε≡Φ±εΓΩΦ Φ ≡σΣαΩ≥Φ≡εΓαφΦ  ±ΓεΘ±≥Γα - Γ π≡α⌠Φ≈σ±Ωε∞ ΦδΦ ≥σΩ±≥εΓε∞ ∩≡σΣ±≥αΓδσφΦΦ. ╧ε εß∙Φ∞ ∩≡αΓΦδα∞, ∩≡Φ Φτ∞σφσφΦΦ τφα≈σφΦ  ±ΓεΘ±≥Γα ≡σΣαΩ≥ε≡ Σεδµσφ Γετß≤µΣα≥ⁿ ±εß√≥Φσ propertyChange. ╬≥±■Σα φσεß⌡εΣΦ∞ε±≥ⁿ Γ ≡σαδΦτα÷ΦΦ ∞σ≥εΣεΓ add/remove.

─δ  ≤±≥αφεΓδσφΦ  α±±ε÷Φα÷ΦΘ ∞σµΣ≤ ≥Φ∩α∞Φ Σαφφ√⌡ Φ Φ⌡ ≡σΣαΩ≥ε≡α∞Φ ±δ≤µΦ≥ Ωδα±± PropertyEditorManager. ╬φ ∩εΣΣσ≡µΦΓασ≥ Ωα≥αδεπ τα≡σπΦ±≥≡Φ≡εΓαφφ√⌡ ≡σΣαΩ≥ε≡εΓ; σ±δΦ µσ  Γφα  ≡σπΦ±≥≡α÷Φ  ε≥±≤≥±≥Γ≤σ≥, PropertyEditorManager ∩√≥ασ≥±  ε≥√±Ωα≥ⁿ Ωδα±±, Φ∞  Ωε≥ε≡επε εß≡ατεΓαφε ∩≡Φ∩Φ±√ΓαφΦσ∞ Ω Φ∞σφΦ ≥Φ∩α ≥σΩ±≥α "Editor" (±∞. δΦ±≥Φφπ 16).

─δ  φα±≥≡εΘΩΦ ±δεµφ√⌡ Ωε∞∩εφσφ≥εΓ ± ßεδⁿ°Φ∞ ≈Φ±δε∞ ±∩σ÷Φ⌠Φ≈σ±ΩΦ⌡ ±ΓεΘ±≥Γ ∞εµσ≥ ∩ε≥≡σßεΓα≥ⁿ±  ±∩σ÷ΦαδΦτΦ≡εΓαφφ√Θ Ωδα±±, εßδσπ≈α■∙ΦΘ ΣσΘ±≥ΓΦ  ∩εδⁿτεΓα≥σδσΘ ∩ε ±≡αΓφσφΦ■ ±ε ±≥αφΣα≡≥φ√∞ ≡σΣαΩ≥Φ≡εΓαφΦσ∞ ßδαφΩα. ╥αΩεΘ Ωδα±±-φα±≥≡εΘ∙ΦΩ Σεδµσφ ß√≥ⁿ ∩≡ ∞√∞ ΦδΦ Ωε±Γσφφ√∞ ∩≡σσ∞φΦΩε∞ Ωδα±±α java.awt.Component, εΣφεΓ≡σ∞σφφε ≡σαδΦτ≤  Φφ≥σ≡⌠σΘ± java.beans. Customizer (ε∩Φ±αφΦσ ∩ε±δσΣφσπε ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 17).

╫≥εß√ ΦτΓσ±≥Φ≥ⁿ εΩ≡≤µσφΦσ ε φαδΦ≈ΦΦ φα±≥≡εΘ∙ΦΩα, Ωε∞∩εφσφ≥ Σεδµσφ ∩≡σΣε±≥αΓδ ≥ⁿ Ωδα±± BeanInfo Φ, Γ ≈α±≥φε±≥Φ, ≡σαδΦτεΓ√Γα≥ⁿ ∞σ≥εΣ getCustomizerClass Ωδα±±α BeanDescriptor (±∞. ≡ατΣσδ "└⌠Φ°Φ≡εΓαφΦσ Φ Γ√ ±φσφΦσ Φφ≥σ≡⌠σΘ±εΓ").

═α φα° Γτπδ Σ, ∞σ⌡αφΦτ∞ ±ΓεΘ±≥Γ ±∩σ÷Φ⌠Φ÷Φ≡εΓαφ Γ ±≡σΣσ JavaBeans Γσ±ⁿ∞α ΩΓαδΦ⌠Φ÷Φ≡εΓαφφε. ┬ ∩≡ε±≥√⌡ ±Φ≥≤α÷Φ ⌡ ≡ατ≡αßε≥≈ΦΩ≤ Ωε∞∩εφσφ≥α φσ φ≤µφε Σσδα≥ⁿ φΦ≈σπε; Γ ±δεµφ√⌡ µσ ±δ≤≈α ⌡ εφ Φ∞σσ≥ ∩≡αΩ≥Φ≈σ±ΩΦ ∩εδφ≤■ ±ΓεßεΣ≤ Σδ  ±α∞√⌡ Φτε∙≡σφφ√⌡ ≡σαδΦτα÷ΦΘ.