Understanding Components
Ennen kuin rakennat mukautettuja komponentteja webforJ:ssä, on tärkeää ymmärtää perustavanlaatuinen arkkitehtuuri, joka määrittää, miten komponentit toimivat. Tässä artikkelissa selitetään komponenttierarkia, komponentin identiteetti, elinkaarikonseptit ja kuinka huolenaiheiden rajapinnat tarjoavat komponenttikykyjä.
Ymmärtäminen komponenttierarkiasta
webforJ järjestää komponentit hierarkiaan, jossa on kaksi ryhmää: kehyksen sisäiset luokat, joita et koskaan saa laajentaa, ja luokat, jotka on suunniteltu erityisesti mukautettujen komponenttien rakentamiseen. Tässä osiossa selitetään, miksi webforJ käyttää koostumusta periytymisen sijaan ja mitä kukin hierarkian taso tarjoaa.
Miksi koostumus eikä laajentaminen?
webforJ:ssä oletuskomponentit, kuten Button ja TextField, ovat lopullisia luokkia - et voi laajentaa niitä:
// Tämä ei toimi webforJ:ssä
public class MyButton extends Button {
// Button on lopullinen - ei voi laajentaa
}
webforJ käyttää koostumusta periytymisen sijaan. Sen sijaan, että laajentaisit olemassa olevia komponentteja, luot luokan, joka laajentaa Composite-luokkaa ja yhdistää komponentteja sen sisälle. Composite toimii säiliönä, joka käärii yksittäisen komponentin (nimeltään sidottu komponentti) ja mahdollistaa omien komponenttien ja käytöksen lisäämisen siihen.
public class SearchBar extends Composite<FlexLayout> {
private TextField searchField;
private Button searchButton;
public SearchBar() {
searchField = new TextField("Haku");
searchButton = new Button("Mene");
getBoundComponent()
.setDirection(FlexDirection.ROW)
.add(searchField, searchButton);
}
}
Miksi et voi laajentaa oletuskomponentteja
webforJ-komponentit on merkitty lopullisiksi, jotta varmistetaan asiakaspuolen verkkokomponentin eheyden säilyttäminen. webforJ-komponenttiluokkien laajentaminen antaisi hallinnan alapuolelle verkkokomponentille, mikä voisi johtaa odottamattomiin seurauksiin ja rikkoa komponentin käyttäytymisen johdonmukaisuuden ja ennustettavuuden.
Yksityiskohtaisen selityksen saamiseksi katso Lopulliset luokat ja laajentamisrajoitukset arkkitehtuuridokumentaatiossa.
Komponenttierarkia
Luokat kehittäjille (käytä näitä):
- Composite
- ElementComposite
- ElementCompositeContainer
Sisäiset kehysluokat (älä laajenna suoraan):
- Component
- DwcComponent
Component tai DwcComponentÄlä laajenna Component tai DwcComponent suoraan. Kaikki oletuskomponentit ovat lopullisia. Käytä aina koostumuskaavoja Composite tai ElementComposite kanssa.
Yrittäminen laajentaa DwcComponent -luokkaa aiheuttaa ajonaikaisen poikkeuksen.