'Ruolo' è ciò che determina il comportamento prescritto dei metodi
L'essenza della spiegazione di seguito è "No".
Essendo a conoscenza della tua conoscenza delle restrizioni linguistiche (è consentito o meno), presumo che questa sia più una domanda sui principi che guidano un progetto, cercherò di spiegare in questi termini.
La base su cui deve essere deciso, se un metodo o anche tutti i metodi di una determinata classe dovrebbero o non dovrebbero essere stampati sullo schermo, è Ruolo .
Cercando di seguire il principio di Responsabilità Singola per quanto possibile, una classe dovrebbe generalmente essere quella che interagisce con gli utenti o quella che non interagisce con gli utenti. Solo le classi che risiedono sul bordo del sistema (lato UI, non bordo n / w) generalmente saranno stampate sulla console o sulla GUI come progettato, attenzione che queste classi verranno create solo dopo la decisione sull'interfaccia utente (console o GUI) è fatto.
Tutte le altre classi dovrebbero generalmente esistere per eseguire funzioni che assistono nello stadio intermedio del risultato che si sta formando. Se si trovano ad affrontare situazioni in cui alcune informazioni inaspettate devono essere condivise all'esterno, dovrebbero preferibilmente utilizzare canali come la registrazione, l'aumento delle eccezioni o la restituzione dei valori di errore. Questo può quindi essere consumato, interpretato e condiviso all'esterno dell'utente, secondo l'interfaccia decisa.
Ad esempio, se creo una libreria matematica che stampa un messaggio alla console quando affronta lo scenario diviso per zero, dovrebbe essere riscritta se in seguito voglio utilizzare lo stesso algoritmo / libreria per una GUI ambiente basato. Ciò sarebbe in violazione del concetto di modularità / riusabilità, uno dei principali pilastri dell'OOP. Si noti che il "ruolo" delle mie classi matematiche consiste nell'eseguire il calcolo e non nel presentarlo all'utente. Ci dovrebbe essere una classe diversa che gestisca il lavoro di interazione con gli utenti. Questa altra classe (o serie di classi) si occuperà di come presentarla all'utente (Console / GUI), come formattarla / visualizzarla (Testo / Tabelle / Grafici / ecc.)
Questo è un risultato diretto della considerazione di due dei principi di progettazione di classe, vale a dire, principio di responsabilità singola e principio di segregazione dell'interfaccia, al fine di evitare di indulgere in interfacce grasse.
Spero che non sembri piuttosto vago.