Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Problema Interfacce

    Salve, avrei un problema più che altro 'teorico'. In sostanza ho un progetto che dovrebbe rappresentare una biblioteca virtuale, ogni biblioteca ha delle stanze, ogni stanza degli scaffali e ogni scaffali dei libri con una determinata posizione indicata dalla lettera della stanza, dal numero dello scaffale e dalla posizione occupata nello scaffale. Detto questo, il problema mi chiede di implementare 2 interfacce, una per la ricerca e una per l'ordinamento. Nel primo caso per ottenere ricerche in base al titolo e all'autore, nel secondo caso per ordinare in base alla lettera della stanza o in base al numero dello scaffale. Beh, non riesco ad arrivare ad una soluzione per le interfacce e come implementarle in modo tale da potermi essere utili per la ricerca e per l'ordinamento. Non voglio che mi scriviate il codice, ma qualche aiuto 'logico' se possibile...





    Grazie in anticipo...

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non capisco il problema, forse ti sei perso in un bicchier d'acqua...

    Per la ricerca dovrebbe bastare una cosa del genere:

    codice:
    public interface SearchableBook {
        public Book searchByAuthor(String author);
        public Book searchByTitle(String title);
    }
    (non ho capito se la ricerca deve essere fatta o per autore o per titolo o per entrambe le cose)

    Per l'ordinamento fai una roba simile.. A meno che non abbia capito male quello che devi fare
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    La ricerca deve essere fatta sia per autore che per titolo... e l'ordinamento sia per stanza d'appartenenza che per scaffale d'appartenenza. In effetti credo di essermi effettivamente perso in un bicchier d'acqua... ma non capisco come queste interfacce possano essermi utili ai fini della ricerca e dell'ordinamento dato che io inizialmente avevo implementato due metodi per la ricerca nella classe biblioteca che andava in sostanza a prendersi i cloni dei libri in base al nome dell'autore o a quello del titolo e restituiva un array in base alla ricerca, dato che possono esserci più libri con lo stesso autore o con lo stesso titolo...

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Beh quindi basta modificare l'interfaccia in

    codice:
    public interface SearchableBook {
        public Book searchByAuthorAndTitle(String author, String title);
    }
    L'utilità delle interfacce è che ti forniscono un contratto per un'operazione, fregandosene di come l'operazione viene implementata.

    Ad esempio, potresti avere queste implementazioni:

    codice:
    public class RemoteLibrary implements SearchableBook {
        ...
    
        public Book searchByAuthorAndTitle(String author, String title) {
            // effettua la ricerca usando un oggetto remoto
        }
    }
    
    
    public class DatabaseLibrary implements SearchableBook {
        ...
    
        public Book searchByAuthorAndTitle(String author, String title) {
            // effettua la ricerca su un db
        }
    
    }
    
    
    public class CsvLibrary implements SearchableBook {
        ...
    
        public Book searchByAuthorAndTitle(String author, String title) {
            // effettua la ricerca su un file csv
        }
    }
    Nel tuo programma potrai fare una cosa del genere:

    codice:
    List<SearchableBook> list = new ArrayList<SearchableBook>();
    list.add(new RemoteLibrary());
    list.add(new DatabaseLibrary());
    list.add(new CsvLibrary());
    
    String author = ...
    String title = ...
    
    List<Book> books = new ArrayList<Book>();
    
    for (SearchableBook sb : list) {
        Book book =  sb.searchByAuthorAndTitle(author, title);
        books.add(book);
    }
    
    ...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Grazie mille, mi hai reso tutto molto più chiaro... ma nel caso in cui io ho due ricerche separate, nel senso che devo fare una ricerca in base all'autore e una separata in base al titolo... mi basta 'separare' il metodo nell'interfaccia in uno per il titolo e uno per l'autore e implementarli separatamente poi nelle classi che implementano (scusa la ripetizione) l'interfaccia?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.