Eu vi esse esse artigo um tempo atrás. O autor afirma que a separação da apresentação do modelo (como no MVC) é contra os princípios de orientação a objeto. A justificativa é que para os objetos da View saberem mostrar o conteúdo de um objeto eles precisam, de alguma forma, ter acesso aos internals do objeto - violando o encapsulamento. Note que declarar os fields private e criar uma porção de get/set não altera o fato que a implementação está ‘vazando’. O autor (Allen Holub) sugere que os objetos tenham a capacidade de se exibir sozinhos.
Quando eu li na primeira vez eu pensei “Tá, violamos um pouco o encapsulamento - e daí? Encapsulamento é uma diretriz, não um axioma irrevogável. A separação View/Model é uma decisão de projeto como qualquer outra”.
Eu estou postando esse tópico agora porque me ocorreu um negócio (e porque é sexta-feira e eu não tenho nada melhor para fazer :? ). Se pudéssemos usar herança múltipla, a View poderia ter acesso às private parts do modelo, sem obrigar este a se expor públicamente. O acoplamento formalmente seria um pouco maior do que é sem o relacionamento pai/filho entre o modelo e a view. Mas na prática a View já é muito depentente do modelo. O sistema todo ficaria um pouco mais elegante. Por outro lado, herança múltipla é um abacaxi e, além da elegância, não se ganharia muito.
O que vocês acham?