Hirdetés
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Fejhallgató erősítő és DAC topik
- LG LCD és LED TV-k
- Azonnali alaplapos kérdések órája
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- 3D nyomtatás
- Melyik tápegységet vegyem?
- Apple asztali gépek
- SSD kibeszélő
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Új hozzászólás Aktív témák
-
modder
aktív tag
Karma írta: "A lényeg az, hogy milyen szolgáltatást nyújt, nem az, hogy konkrétan hogyan oldja meg."
Igazából ez a legfontosabb dolog. Amit még hozzá tennék, hogy kontextusfüggő vagy scope függő, hogy a statikus típusa a változónak Map vagy TreeMap legyen-e.
Amikor az osztályod (osztályaid) külső interfészét tervezed meg, akkor a hívó kliens kódnak nem kell tudnia hogy milyen konkrét implementációt (TreeMap vagy HashTable) ad vissza az osztályod egy függvénye, csak azt, hogy a visszaadot érték Map tulajdonságú.
De az osztályon belül fontos lehet, hogy konkrét típust deklarálj. Például egy JSON feldolgozó osztályt csinálsz, és szeretnéd, ha a hívó kliens egyszerűen egy OutputStreambe tudja írni a feldolgozandó JSON stringet. Neked azonban kell egy módszer a JSON feldolgozó osztályban, amivel ki tudod nyerni az OutputStreambe írt adatot. Az OutputStream interfészben nincsen deklarálva semmilyen metódus, amivel adatot ki tudnál nyerni (nem is arra való). De a ByteArrayOutputStreamben vissza tudod kérni a beírt adatot byte[] tömbként.
Konkrét példa:
public class MyJsonParser {
private ByteArrayOutputStream jsonByteStream = new ByteArrayOutputStream();
public OutputStream getOutputStream() {
return (OutputStream) jsonByteStream;
}
public JsonObject parse() {
// fontos tudni hogy ez egy ByteArrayOutputStream hogy használhassuk a toByteArray() metódusát
byte[] jsonBytes = jsonByteStream.toByteArray();
JsonObject jObject = new JsonObject();
// parszoljuk a json stringet
return jObject;
}
}
public class Application {
public static void main(String[] argv) {
MyJsonParser parser = new MyJsonParser();
// kit érdekel a konkrét implementációja az OutputStreamnek én csak írni akarok bele?
OutputStream parserOutputStream = parser.getOutputStream();
parserOutputStream.write( argv[0].getBytes() );
JsonObject jObject = parser.parse();
}
}Ezt csak azért írtam le, mert nem örök igazság, hogy csak interfész típust deklarálunk.

Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- aquark: RETRO: Idén lesz 30 éves az első full 3D-s játék!
- Trollok komolyan
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- ASUS routerek
- Torrent meghívó kunyeráló
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Több ezer műholddal bővülhet az Amazon flottája
- Sorozatok
- Érdemes elővenni a Diablo II-t: érdekes újdonságot kap a játék
- Horgász topik
- További aktív témák...
- Bomba ár! HP ProBook 450 G6 - i3-8GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W10 I Gari!
- iPhone 17 Pro Max 256 GB Deep Blue - Bontatlan !! www.stylebolt.hu - Apple eszközök - Számlás
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 66921Ft+ÁFA
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / RX 5700 8GB / 16GB DDR4 / 256SSD + 2TB HDD
- HIBÁTLAN iPhone 12 64GB White-1 ÉV GARANCIA - Kártyafüggetlen, MS4487
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



