Cosa c'è di così sacro in un membro private? È una convenzione esattamente come un underscore, nulla ti impedisce di piazzare tutto come public; private è un aiuto che ti viene dato per separare interfaccia ad implementazione, nulla di più. Se scrivi oggetto._membro sai che stai violando l'interfaccia, è l'unica cosa che conta.
Il problema è che siamo talmente abituati alla OOP "alla Java" (o C++, C# e di molti dei linguaggi mainstream attuali) da vedere solo l'implementazione "canonica" della OOP (o di altre caratteristiche del linguaggio), se ci si guarda in giro ci sono state (e ci sono tuttora) un mucchio di altre idee interessanti in ambito di linguaggi (e qui bisogna chiedere a Scara95, è lui che prova qualunque linguaggio si trovi in giro).
Edit: per dire, basta vedere un diagramma come questo per vedere la varietà di idee che c'è in giro in ambito-linguaggi se appena si esce dai linguaggi super-mainstream.



).
Rispondi quotando