Sto lavorando su un incarico software in cui il design è basato su componenti. I componenti hanno porte che forniscono interfacce.
Il mio professore sostiene che la classe Port che è esposta da ciascun componente dovrebbe essere un Singleton, in quanto la porta deve essere l'unico modo per interagire con il componente. A mio avviso, più istanze non interferiscono con il requisito che la porta debba essere il singolo punto di interazione.
È come singleton il modo giusto per implementare una porta per il componente?
Per fare un esempio: L'incarico è un modello di un aeroplano e di un aeroporto. I componenti sono parti diverse di un aeroplano e l'aeroporto. Poiché si tratta di un incarico di gruppo, diversi studenti devono implementare diverse componenti. Questo è il diagramma UML delle diverse componenti dell'aeroporto:
Le interfacce sono implementate in una classe chiamata Port, che è una classe interna all'attuale implementazione. La classe esterna ha una porta di campo pubblica ed è un singleton. I diversi componenti interagiscono caricando il Jar-File e accedendo all'istanza Port tramite reflection.