『抽象概念はコード上に、詳細はメタデータ上に置くこと』
実装例 入力文字列の検査
背景
入力フォームからの文字フォーマットを検査する際、
入力文字が
「半角英数」なのか、「半角数字」なのか、「カンマ区切りの半角英数」で
構成されているかどうかチェックする必要がある。


問題
「半角英数」「半角数字」「カンマ区切りの半角英数」
のチェックをする関数を1つずつ作ると、
それぞれのコードの処理の流れは大体同じで、冗長となる。
コーディングが作業的。それぞれにJavaDoc書くのメンド(ry


課題
それぞれの処理の違いと同じ箇所はどこか?どうやって共通化するか?


解決案
検査処理を正規表現を用いた文字列一致とし、
その処理を共通化する。
コードは単純な2パターン。
一致する ->正常フォーマット
一致しない->異常フォーマット


正規表現を外に出し、設定ファイルとする。
value1 = ^[0-9]+$
value2 = ^[a-zA-Z0-9]+$
value3 = (メールアドレスの正規表現とか)


これで詳細(半角英数のみ、半角数字のみ)は設定ファイル、
抽象(文字列を検査する)はコードとなります。