オブジェクト指向でなんだか基本的なことな気がするけどわからないことがあるんですが

@C#やC++等でモデルビューコントローラー的な実装をする想定
Aモデルのデータレコードは多種なので派生クラスで構成する
Bビューでモデルを参照する方法
A.データレコードをダウンキャストして中身を見るのはオブジェクト指向に反する
B.データレコードクラスにビュー処理のメンバ関数を追加?
モデルにビューを参照させたくないためのMVCなのでこれもオブジェクト指向反する

なんか根本的に間違ってるんですかね