sinceramente non capisco perche` tu voglia fare una cosa simile. Qual e` il problema del passare la lista di prodotti per riferimento? Farne una copia poi rendere piu` difficile la manutenzione.

Piu` che altro penso tu abbia sbagliato il modello. Di solito si fa:
- una classe Ordine che rappresenta l'acquisto di una serie di prodotti
- una classe prodotto che rappresenta i prodotti acqustabili
- una classe rigaordine che lega i prodotti all'ordine specificando ulteriori parametri quali quantita`, taglia ed eventuali altre opzioni d'acquisto specifiche per il singolo ordine

L'incapsulamento non e` necessariamente un male. I concetti che bisogna tener conto in fase di progettazione sono coesione e accoppiamento. Ci sono molte risorse in rete che ne parlano.