Come forzare l'utente a creare una nuova istanza di oggetto

-1

Ho una libreria con thread e applicazioni asincroni che li usano. L'applicazione può passare l'oggetto alla libreria di tipo fornito dall'interfaccia della libreria. Se l'applicazione non crea una nuova istanza di oggetto e passa, ad esempio, l'oggetto che viene utilizzato per il livello di presentazione di un'applicazione sospesa per alcuni secondi potrebbe causare un arresto anomalo o l'eccezione dell'operazione di thread incrociata potrebbe essere lanciata. Come forzare l'utente della libreria a creare una nuova istanza di oggetto?

    
posta ElConrado 31.10.2016 - 09:20
fonte

1 risposta

5

Di solito non lo fai.

Pensa a come puoi migliorare la tua interfaccia per rendere questo un non-problema. A seconda del contesto, potrebbe essere sensato trattare gli oggetti come immutabili o copiarli. Forse puoi comunicare meglio le tue intenzioni con un design o un nome diverso.

Forse non è necessario dal punto di vista dell'applicazione passare sempre nuovi oggetti - in tal caso, questa limitazione potrebbe essere considerata un bug nella libreria che dovrebbe essere corretto. Gli effetti collaterali sono parte del contratto?

Finalmente ci saranno sempre usi che non hanno senso - e spesso è giusto accettarlo. Se i dati sono condivisi dove non è previsto, le cose possono andar male.

Se è molto comune sbagliare e il numero di oggetti è piccolo, potrebbe voler catturare quegli errori di programmazione eliminando gli oggetti usati e rilasciando eccezioni se appaiono di nuovo. Ma forse l'utente sa cosa sta facendo e sarebbe perfetto nel suo scenario ...

    
risposta data 31.10.2016 - 11:40
fonte

Leggi altre domande sui tag