Fatti

La controversia oppone Karl Staub, un impiegato comunale, alla società Treuvag, Treuwerte- und Verwaltungs-AG e alla società Brunner, Möbel- und Innenausbau AG. Il 6 ottobre 1956, Staub ha concluso con la Treuvag un "contratto di risparmio per l'acquisto di mobili" con il quale si impegnava a risparmiare 5'000 franchi per poter successivamente acquistare mobili, tappeti, biancheria per la casa e tende presso la Brunner o un altro fornitore designato. Staub ha effettuato un primo versamento nel novembre 1956, poi ha rifiutato di proseguire i pagamenti, ritenendo che il contratto fosse nullo per immoralità. Le società Treuvag e Brunner hanno quindi agito in giudizio per ottenere il pagamento delle rate scadute.

Legge

Il DTF ritiene che il contratto controverso costituisca una combinazione di un "contratto di risparmio" tra Staub e la Treuvag e di un "precontratto di acquisto" tra Staub e la Brunner. Sebbene il contratto non possa essere qualificato in modo preciso, il suo contenuto è valido nei limiti della legge (art. 19 cpv. 1 CO).

Per quanto riguarda la determinazione dei beni da acquistare e del loro prezzo, il DTF ritiene che tali elementi siano sufficientemente determinabili. Gli oggetti sono definiti come mobili, tappeti, biancheria per la casa e tende che Staub potrà scegliere tra l'assortimento dei fornitori designati. Quanto al prezzo, esso è fissato con riferimento ai prezzi di vendita al contante esposti nei locali espositivi o riportati nelle liste dei prezzi del settore.

Il DTF respinge anche l'argomento di Staub secondo cui la possibilità di trasferire i diritti…