Implementare una libreria

di il
4 risposte

Implementare una libreria

Ciao a tutti!

Dopo due corsi di programmazione Java "base" mi tocca seguire un corso più avanzato e mi sto trovando un po' spiazzato dalla mole di richieste degli esercizi da svolgere. I corsi base non hanno approfondito alcune di queste richieste quindi alcuni esercizi non riesco nemmeno ad iniziarli.

Uno di questi richiede di implementare una libreria che offre un algoritmo di Insertion Sort. Tale algoritmo deve essere implementato in modo tale da poter essere utilizzato su un generico tipo T l'implementazione dell'algoritmi deve permettere di specificare il criterio secondo cui ordinare i dati bisogna usare l'interfaccia java.util.Comparator

Che differenza c'è nell'implementare una libreria? Sono capace di scrivere un Insertion Sort ma non capisco che vuol dire "implementare una libreria" o come implementarlo per poter utilizzarlo su un generico tipo T e tutto il resto.

Qualche volontario che si offre di chiarirmi le idee?! Vanno bene anche link di guide/ video su YouTube se sono cose troppo lunghe da spiegare

4 Risposte

  • Re: Implementare una libreria

    NoProg ha scritto:


    Che differenza c'è nell'implementare una libreria?
    Una libreria è un "modulo" che contiene funzioni, tipi, strutture, algoritmi, ecc.. che sono riutilizzabili in altri contesti, tipicamente all'interno di una applicazione finale (o al limite da un'altra libreria). Una libreria da sola non fa nulla. Deve essere "usata" da qualcuno.
    In Java il "pacchetto" finale di una libreria (e anche di una applicazione) è il JAR (file .jar).

    NoProg ha scritto:


    come implementarlo per poter utilizzarlo su un generico tipo T
    Quando parla di un generico tipo T, si riferisce ai generics, una importante funzionalità che è stata introdotta molti anni fa in Java 5. Questa funzionalità permette di definire tipi (ma anche metodi) "parametrizzabili", ovvero che possono essere applicabili a più tipi mantenendo la type-safety a livello di compilazione.
    Se non conosci questa funzionalità, è meglio che la studi bene perché non è proprio banale, specialmente su aspetti un po' più avanzati.

    P.S. riguardo Comparator ne sto parlando ad un altro studente proprio in questi giorni in questa discussione.
  • Re: Implementare una libreria

    andbin ha scritto:


    NoProg ha scritto:


    Che differenza c'è nell'implementare una libreria?
    Una libreria è un "modulo" che contiene funzioni, tipi, strutture, algoritmi, ecc.. che sono riutilizzabili in altri contesti, tipicamente all'interno di una applicazione finale (o al limite da un'altra libreria). Una libreria da sola non fa nulla. Deve essere "usata" da qualcuno.
    In Java il "pacchetto" finale di una libreria è il JAR (file .jar).

    NoProg ha scritto:


    come implementarlo per poter utilizzarlo su un generico tipo T
    Quando parla di un generico tipo T, si riferisce ai generics, una importante funzionalità che è stata introdotta molti anni fa in Java 5. Questa funzionalità permette di definire tipi (ma anche metodi) "parametrizzabili", ovvero che possono essere applicabili a più tipi mantenendo la type-safety a livello di compilazione.
    Se non conosci questa funzionalità, è meglio che la studi bene perché non è proprio banale, specialmente su aspetti un po' più avanzati.

    P.S. riguardo Comparator ne sto parlando ad un altro studente proprio in questi giorni in questa discussione.
    Quindi a livello di codice cosa devo scrivere in più per definire una libreria? Devo fare degli import o definirlo inizialmente come package? Sui tipi generici cerco di approfondire perché non li ho mai utilizzati!
  • Re: Implementare una libreria

    NoProg ha scritto:


    Quindi a livello di codice cosa devo scrivere in più per definire una libreria?
    Partiamo da un concetto: in Java il JAR è l'archivio (tecnicamente è uno zip) che contiene uno o più file .class insieme ad eventuali "risorse" (immagini, testi, audio, ecc..) che possono essere di ausilio.

    Se un JAR è una applicazione o una libreria ... dipende da cosa contiene. Una applicazione ha un "punto di ingresso", una classe Java con il classico metodo main(String[] args) che può essere avviato. Una libreria non ha un tale punto di ingresso. Semplicemente è un insieme di classi che forniscono funzionalità, algoritmi, strutture, ecc...

    NoProg ha scritto:


    Devo fare degli import o definirlo inizialmente come package?
    Se fai una "libreria", è BENE che le classi di tale libreria siano in un package con nome. Usare il package di "default" (quello senza nome) non va bene perché non può essere importato.
    Poi una applicazione che vorrà usare la tua libreria, dovrà chiaramente avere le dichiarazioni di import per poter usare le tue classi della libreria.

    NoProg ha scritto:


    Sui tipi generici cerco di approfondire perché non li ho mai utilizzati!
    Di documentazione ce n'è. In inglese sicuramente molta, in italiano trovi sicuramente qualcosa.
    E se hai dubbi, chiedi.
  • Re: Implementare una libreria

    andbin ha scritto:


    NoProg ha scritto:


    Quindi a livello di codice cosa devo scrivere in più per definire una libreria?
    Partiamo da un concetto: in Java il JAR è l'archivio (tecnicamente è uno zip) che contiene uno o più file .class insieme ad eventuali "risorse" (immagini, testi, audio, ecc..) che possono essere di ausilio.

    Se un JAR è una applicazione o una libreria ... dipende da cosa contiene. Una applicazione ha un "punto di ingresso", una classe Java con il classico metodo main(String[] args) che può essere avviato. Una libreria non ha un tale punto di ingresso. Semplicemente è un insieme di classi che forniscono funzionalità, algoritmi, strutture, ecc...

    NoProg ha scritto:


    Devo fare degli import o definirlo inizialmente come package?
    Se fai una "libreria", è BENE che le classi di tale libreria siano in un package con nome. Usare il package di "default" (quello senza nome) non va bene perché non può essere importato.
    Poi una applicazione che vorrà usare la tua libreria, dovrà chiaramente avere le dichiarazioni di import per poter usare le tue classi della libreria.

    NoProg ha scritto:


    Sui tipi generici cerco di approfondire perché non li ho mai utilizzati!
    Di documentazione ce n'è. In inglese sicuramente molta, in italiano trovi sicuramente qualcosa.
    E se hai dubbi, chiedi.
    Perfetto, grazie mille!
Devi accedere o registrarti per scrivere nel forum
4 risposte