Newsgroup: it.comp.java
Titolo: [niubbo paura] gestione delle funzioni "generiche"

ciao a tutti.
Vorrei capire qual e' il modo giusto di utilizzare delle funzioni
"generiche" all'interno di un programma.
mi spiego.
 
ho necessita' di copiare su un db dei messaggi sms scaricati da due
telefoni diversi, e i quali file sono di formato diverso.
ho quindi bisogno di creare DUE programmi java che fanno praticamente le
stesse cose, ma devono essere distinti.
ho pensato di creare un package e mettere dentro una classe per ognuno dei
due programmi (una "CaricaSmsNokia" e l'altra "CaricaSmsSamsung"), e un
qualcosa contenente delle funzioni di accesso al Db, del tipo "connetti",
"disconnetti" e cosi' via.
qual e' il modo giusto per gestire questa cosa?
a me basterebbero delle semplici funzioni, ma vedo che devo creare una
classe contenente le funzioni, e dal main dei programmi "caricasms*"
istanziare una classe e andare di accessoDb.Connetti,
accessoDb.Disconnetti, mentre io avrei piu' piacere di usare una roba del
tipo "accesso", un po' come (non uccidetemi, vi prego) si poteva fare con
vecchio vb6, nel quale creavo un semplice file contenente le fuzioni di
cui avevo bisogno, e le usavo direttamente.
 
si puo' fare?
 
 
 
grazie
 
-- 
Be you!
www.shareyourproblems.org
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 si puo' fare?
 
Guarda se questo esempio minimale ti pu� andare bene, ti ho fatto
qualcosa che fosse molto semplice ma al contempo estensibile. Ciao.
 
==========================================================
class SMS {
     /* da definire */
}
 
enum Manufacturer {
     NOKIA, SAMSUNG
}
 
interface Phone {
     public SMS[] getSMS();
}
 
class NokiaPhone implements Phone {
     public SMS[] getSMS() {
         System.out.println("scarico messaggi da un telefono Nokia...");
         return new SMS[3];
     }
}
 
class SamsungPhone implements Phone {
     public SMS[] getSMS() {
         System.out.println("scarico messaggi da un telefono Samsung...");
         return new SMS[3];
     }
}
 
/* ... N altre implementazioni per N tipi di telefono ... */
 
class SMSManager {
     public SMSManager() {
     }
 
     public SMS[] getSMSFromPhone(Manufacturer manufacturer) {
         SMS sms[] = null;
 
         switch (manufacturer) {
         case NOKIA:
             sms = new NokiaPhone().getSMS();
             break;
         case SAMSUNG:
             sms = new SamsungPhone().getSMS();
             break;
         }
 
         return sms;
     }
 
     public void putSMSInDB(SMS sms[]) {
     }
}
 
class Main {
     public static void main(String args[]) throws Exception {
         SMSManager smsManager;
         SMS sms[];
 
         smsManager = new SMSManager();
         if (args[0].equals("Nokia"))
             sms = smsManager.getSMSFromPhone(Manufacturer.NOKIA);
         else if (args[0].equals("Samsung"))
             sms = smsManager.getSMSFromPhone(Manufacturer.SAMSUNG);
         else
             throw new Exception("Unsupported phone");
         smsManager.putSMSInDB(sms);
     }
}
==========================================================
 
 
 

 &quot;generiche&quot; all&#39;interno di un programma.
 
Funzioni generiche?
Non so cosa intendi, comunque per quello che vuoi fare secondo me dovresti creare una classe per un telefonino generico, di base, da cui estendere le sottoclassi per ogni telefonino specifico, eventualmente prima per marca e poi per modello, in cui ereditare, overridare e overloadare quello che serve.
La gestione del database dovrebbe essere indipendente dal tipo di telefono. A meno che tu voglia registrare nel DB i messaggi in maniera differente per ogni telefonino. In questo caso, per mantenere la gestione del DB indipendente, potrebbe essere un idea sfruttare le classi per l'internazionalizzazione, localizzando i messaggi in base a marca (lingua) e modello (nazione). Ma qui andiamo sul complicato ;)

Il giorno sabato 21 luglio 2012 21:07:37 UTC+2, Massimo M. ha scritto:

Parli di funzioni e oggetti con funzioni, secondo me provieni da un linguaggio di programmazione procedurale tipo c o pascal e non hai molta familiarita' con la programmazione orientata agli oggetti, in questo modo risci di incasinarti.