Interfejsy:O zamrożonych interfejsach
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
UWAGA: Tłumaczenie tej strony nie zostało zakończone.
Może być ona niekompletna lub wymagać korekty.
Chcesz pomóc? | Dokończ tłumaczenie | Sprawdź ortografię | Więcej takich stron...
Spis treści |
[edytuj] Status dokumentu
To jest tylko zalążek dokumentu i nie można go traktować jako ukończony.
[edytuj] Interfejsy oraz komponenty XPCOM: przegląd
Aplikacje Mozilli napisane są jako zbiór komponentów XPCOM tworzących funkcjonalność aplikacji oraz grup XUL, DTD i JavaScript tworzących interfejs użytkownika (UI).
Komponenty XPCOM są dostępna światu za pomocą interfejsów.
Interfejsy opisują części funkcjonalności dostarczanej przez komponenty XPCOM i napisanych przy pomocy języka Interface Description Language (IDL).
[edytuj] Interfejsy zamrożone
As Mozilla evolves, some interfaces (its IDL) are changed. However this procedure has some side effects:
- You must change the implementation of the component in order to comply with changes in the interfaces.
- Clients using components must change accordingly
This might seems not to be a huge problem, but as developers make new extensions (or other contributions) they must rely in the stability of the interfaces they are using in their works. So we need a mechanism to provide such a confidence.
The Mozilla team has provided such a mechanism by declaring an interface that is not going to be changed anymore as frozen. This means that everybody can trust that a frozen interface will not be changed, so they can use it as they please: both to implement a component providing such functionality or using a component through that interface.
Non-frozen (sometimes called unfrozen) interfaces are likely to be changed and developers using them in any way must watch for changes in order to adapt their works. Hopefully, non-frozen interfaces can go frozen without changes.
Mozilla keeps track of the current list of interfaces and their status.
[edytuj] Zobacz również
http://www.mozilla.org/projects/embedding/EmbedInterfaceFreeze.html