>>675
>したがって、Hogeの既定値を用意したとき、それを使用する側にとっては
>それがどのような値なのかを知らずして採用はできないし、

このあたりの問題はこういう処理のしかたもあるんでは。

1.プロパティファイルでなんらかの指定をする(なんなら具象クラスのフルパッケージ名を指定)
  ユーティリティクラスHoges はプロパティの値を解釈して生成する具象クラスを決める。
2. DIフレームワークを使い、使う側では setHoge( Hoge hoge ) メソッドを用意して、
  具象クラスは設定ファイルで指定する。