プリミティブ型を使わないで独自の値型を宣言する
「例えば、『10より小さい整数』というような型が定義できるんですよ。」
ドメイン駆動設計で「プリミティブ型をそのまま使うな」って話に通じる。
例えば「ふりがな」っていうデータはString型でいいんですかと。「ひらがなと空白」だけが妥当(valid)な値なのだとしたら、そういう「型」(type)をつくったらどうですかと。そのうえで、コンストラクタで検証(validation)して例外(exception)投げさせたりすればいいわけですね。
ウェブ・アプリケーションの「MVC」アーキテクチャではユーザー入力値の検証(validation)をコントローラーやビューでやったりするけど、基本はモデルだと思うんですね。だってそれはドメインの知識だから。Ajax validationなどのために補助的にビューで検証することはあってもいいかもしれないけど。