ひがやすを技術ブログ

電通国際情報サービスのプログラマ

クラスのスコープ

http://d.hatena.ne.jp/makotan/20041219#p4
で、うまくまとめられてると思いますが、できる限りスコープ(役割)を小さく抑えることで、修正が入ったときの影響範囲が小さくなり、保守性が増します。
44氏にコメントするとS2DaoでBeanに関するメタデータは、BeanMetaDataクラスで管理されています。Beanに関するメタデータを管理するというのが、BeanMetaDataの本来の役割です。そのクラスがSQL文を自動生成したり、バインド変数を扱ったりするのは、役割を多く抱え過ぎだと思うのです。
役割を多く抱えたクラスは、さまざまな理由により、変更が必要になります。もちろん、Beanに関するメタデータに変更があった場合に、BeanMetaDataに手が入るのは、当たり前ですが、SQL文の自動生成のロジックに変更が入った場合にも、手が入るのは、良くないことだと思うわけです。
私自身も役割抱えすぎのクラスを作ってしまうことがあり、クラス設計の難しさを痛感します。