Visualizzazione dei risultati da 1 a 10 su 22

Visualizzazione discussione

  1. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da megaorso Visualizza il messaggio
    è concettualmente corretto fare un toString così??
    Tecnicamente sì. La forma della stringa risultante non è granché (si può fare meglio) ... è questione di scelte/gusti.

    Quote Originariamente inviata da megaorso Visualizza il messaggio
    oppure dovrei usare getAB per AB e getBC per BC??
    Se non ci sono di mezzo questioni di a) sincronizzazione/concorrenza, b) logiche particolari che un getter potrebbe applicare, usare un campo o un getter nel toString è abbastanza indifferente, detto in generale. Ripeto, se non ci sono altri aspetti da considerare.

    Quote Originariamente inviata da megaorso Visualizza il messaggio
    Ci sono più modi cencettualmente corretti per fare un toString?
    La stringa del toString spesso/tipicamente è una stringa molto "tecnica" e serve per logging/debugging o comunque per utenti "tecnici".
    Ma sovente può anche essere mostrata all'utente comune, come nel tuo caso. Quindi la forma dei dati nella stringa dipende appunto da CHI dovrà leggere quella stringa.

    Il framework standard per le classi "bean" di dati usa di norma una forma del tipo

    nome.qualificato.Classe[prop1=xxx,prop2=yyy, ..... ]

    La classe java.awt.Rectangle ad esempio fornisce una stringa

    java.awt.Rectangle[x=10,y=10,width=200,height=100]

    Quote Originariamente inviata da megaorso Visualizza il messaggio
    Avevo poi pensato di inserire il toString nella classe astratta poligono, ma correggimi se sbaglio, non ha senso perche il toString è gia un metodo di object.
    No, NON è quello il problema. Nella tua classe astratta Poligono "sai" solo area e perimetro perché quelli sono i metodi che tutte le sotto-classi concrete sicuramente dovranno offrire. Ma in Poligono non hai e non sai le informazioni più specifiche relative a ciascuna figura.

    Se vuoi generalizzare un po' la forma si può realizzare una piccola architettura di questo tipo: in Poligono metti la implementazione concreta di toString() in cui comporrai la stringa inserendo sicuramente i dati che Poligono "sa". Poi all'interno della composizione userai un metodo es. String infoFigura(). Questo metodo è astratto (e public o anche solo protected) in Poligono e dovrà essere implementato dalle sotto-classi.
    Quindi ciascuna sotto-classe non dovrà più ripetere l'intero toString() ma solo fornire le informazioni specifiche alla sua figura (es. i due lati di un rettangolo o il raggio di un cerchio).
    Ultima modifica di andbin; 15-11-2016 a 12:39
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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.