Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    la buttlo li... un metodo static?
    e una soluzione tipo.....

    codice:
    
    public class Contenitore {
    
    
    	ClassInside inside;
    	// altro...
    
    
    	
    	private void attivaList(){
    		this.inside.attiva();
    	}
    	
    	public void esegui(){
    		this.attivaList();
    		//Object = inside.getObj();
    		// errore... l'ogetto è nullo
    		// 
    		
    	}
    	
    	public static void faiQuelCheDevi(Object obj){
    		// do it!
    	}
    	
    	
    
    
    }
    
    
    public class ClassInside implements MouseListener {
    
    
    	// altro...
    	private Object Oggetto = null;
    	private boolean flag = false;
    	private boolean fatto = false;
    	
    	
    	public void attiva(){
    		this.flag = true;
    	}
    	
    	public boolean isCreated(){
    		
    	}
    	
    	public Object getObj(){
    		return Oggetto;
    	}
    	
    	@Override
    	public void mouseClicked(MouseEvent arg0) {
    		
    		// atro codice.... necessario per la classe
    		
    		if(this.flag){
    			Oggetto = creaOggetto(); 
    			this.flag = false;
    			Contenitore.faiQuelCheDevi(Oggetto);
    			this.fatto = true;
    		}
    	}
    
    
    }

    ... ti confesso però che queste soluzioni mi lasciano sempre molti dubbi sul fatto che sia o meno una scelta saggia...
    dimmi la tua.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Pierock Visualizza il messaggio
    la buttlo li... un metodo static?
    ... ti confesso però che queste soluzioni mi lasciano sempre molti dubbi sul fatto che sia o meno una scelta saggia...
    dimmi la tua.
    No, infatti come forse stavi intuendo, metodi statici così disposti sono un pessimo "design". Le due classi sono fortemente "legate" insieme, oltre al fatto che in faiQuelCheDevi, essendo static, non hai un "contesto" (ovvero l'oggetto) per operare su un Contenitore e anche se tecnicamente potresti passarglielo tramite parametro facendo qualche "giro" di passaggi in più .... sarebbe ancora peggio.
    Queste cose si risolvono seguendo i principi della programmazione ad oggetti!

    Chiarisci(mi) prima alcune cose: il MouseListener su quale/i, quanti componente/i lo registri? La creazione dell'oggetto differisce eventualmente in base a qualcosa? E se sì che cosa?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    che però agisca su InsideClass.getImage()
    intendevo ...

    "che però agisca (considerando il codice di esempio ... su inside.getImage( )"

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 © 2026 vBulletin Solutions, Inc. All rights reserved.