Oppure

Loading
23/11/10 19:24
crashoverride
Ho deciso di provare le classi imparate in un capitolo del mio libro programmando un programma per conoscere l'orario in tutte le nazioni usando la classe timezone ecc. Per questo non ho problemi ma i problemi vengono nella progettazione ovvero quali classi devo creare? Perchè nonostante i concetti di OOP spiegati nel libro non sò mai quali classi devo creare quando programmo... Quindi vi chiedevo a voi un parere...

Grazie mille.

PS: esistono dei libri che spiegano come scegliere le classi ecc?

Grazie ancora.
aaa
23/11/10 20:14
netarrow
A questa domanda rispondono svariate architetture, che sono appunto infrastrutture che fanno stare in piedi il tuo sistema in maniera solida e gestibile seguendo vari pattern per quello specifico genere di applicazioni da costruire.

Un'introduzione stringata:

Tipicamente per applicazioni "standard" prima di pensare alle classi si pensa ai livelli, nel caso più semplice i livelli sono 3: Data Access, Business Logic, Presentation.
In questi livelli si sviluppano, tipicamente, ulteriori unità logiche che sono le Entità e gli Helpers.

Questa architettura può essere ovviamente estesa fino a diventare una generica architettura a n livelli (n-tiers) e in altri casi diventare decentralizzata ovvero basata su web service (SOA, cioè service oriented architecture) o in generale su una suddivisione client-server o addirittura distribuita.
Ovviamente si possono fare varianti di ogni sorta per definire caratteristiche particolari come modularità, dinamicità, configurabilità estrema o cose del genere.

Quando dovrai approfondire questa parte i testi da leggere riguardano analisi del software, design pattern e software architecture.

Ti direi di non preoccuparti troppo al momento di queste cose e per i tuoi esercizi limitati a rispettare i principi di base della OOP.

Quando invece le applicazioni cominciano ad avere un minimo di fuffa è bene fermarsi un attimo a guardare queste cose per evitare di incombere in cattive abitutini e errori comuni (gli anti-pattern in contrasto ai pattern: it.wikipedia.org/wiki/…)
aaa
24/11/10 0:30
TheKaneB
Postato originariamente da netarrow:

A questa domanda rispondono svariate architetture, che sono appunto infrastrutture che fanno stare in piedi il tuo sistema in maniera solida e gestibile seguendo vari pattern per quello specifico genere di applicazioni da costruire.

Un'introduzione stringata:

Tipicamente per applicazioni "standard" prima di pensare alle classi si pensa ai livelli, nel caso più semplice i livelli sono 3: Data Access, Business Logic, Presentation.
In questi livelli si sviluppano, tipicamente, ulteriori unità logiche che sono le Entità e gli Helpers.

Questa architettura può essere ovviamente estesa fino a diventare una generica architettura a n livelli (n-tiers) e in altri casi diventare decentralizzata ovvero basata su web service (SOA, cioè service oriented architecture) o in generale su una suddivisione client-server o addirittura distribuita.
Ovviamente si possono fare varianti di ogni sorta per definire caratteristiche particolari come modularità, dinamicità, configurabilità estrema o cose del genere.

Quando dovrai approfondire questa parte i testi da leggere riguardano analisi del software, design pattern e software architecture.

Ti direi di non preoccuparti troppo al momento di queste cose e per i tuoi esercizi limitati a rispettare i principi di base della OOP.

Quando invece le applicazioni cominciano ad avere un minimo di fuffa è bene fermarsi un attimo a guardare queste cose per evitare di incombere in cattive abitutini e errori comuni (gli anti-pattern in contrasto ai pattern: it.wikipedia.org/wiki/…)


... e non dimenticare la supercazzola all'Australiana con antani a destra!

seriamente, credi di averlo aiutato così? :D
aaa
24/11/10 10:04
HeDo

asd netarrow che sboroneggia, questa me la segno :)
aaa
24/11/10 15:37
crashoverride
Non ho capito molto di quello che mi hai detto netarrow :( Chiedo venia ma puoi spiegarmelo meglio??

Grazie mille! :)
aaa
24/11/10 19:15
netarrow
.. e non dimenticare la supercazzola all'Australiana con antani a destra!


ahahahah.

Mi sono lasciato prendere dall'entusiasmo.

Cmq non preoccuparti crashoverride, considera l'introduzione un stimolo alla tua curiosità e per "la scelta delle classi" posta le cose che vuoi sviluppare qui e mano a mano ti consiglieremo come organizzare il codice.
aaa
24/11/10 20:15
crashoverride
Ok, allora io voglio semplicemente creare un programma che facendo uso di Calendar, TimeZone ecc mi permetta di conoscere l'ora nei vari paesi...
Percui inserisco in input il nome del Contintente - Es: Europe
Poi il nome dello stato ad esempio Rome
e ritorni l'ora...
Io ho provato in questo modo, creando 2 classi ma non sò se è giusto fare solo 2 classi xD
Eccoti il sorgente:

/*
 * 24 11 2010 
 * TimeZoneHour.java
 * By Gheza Nicola.
 */

import java.util.*;

public class TimeZoneHour {
    private String timeZone;
    private Calendar calendar;
    private String timeZoneHour;
    
    public TimeZoneHour(String timeZone){
        setTimeZone(timeZone);
    }
    
    public void setTimeZone(String timeZone){
        this.timeZone = timeZone;
    }
    
    public String getTimeZone(){
        return timeZone;
    }
    
    public String getTimeZoneHour(){
        calendar = new GregorianCalendar(TimeZone.getTimeZone(timeZone));
        timeZoneHour = calendar.get(Calendar.HOUR) + " "+ calendar.get(Calendar.MINUTE) +" "+calendar.get(Calendar.SECOND);
        return timeZoneHour;
    }
    
}


/*
 * 24/11/2010 
 * WorldTime.java
 * By Gheza Nicola.
 */
import java.util.*;
public class WorldTime {

	public static void main(String[] args) {
		System.out.println("This is WorldTime by Gheza Nicola ;)");
		TimeZoneHour tzh = new TimeZoneHour("Europe/London");
		System.out.println(tzh.getTimeZoneHour());
	}

}

Non ho ancora gestito l'input perchè stavo provando se funzionava il tutto... Poi lo metterò.
Thanks
Ultima modifica effettuata da crashoverride 24/11/10 20:17
aaa