インタフェース設計

インタフェイスを抽出する設計をする事が無駄であって
発生したときにインタフェイスを抽出するリファクタリングをすれば良い話と言う意味でこのエントリになりました。

Scatterbrain - 業務系のクラスでインタフェイスの実装クラス名に「インタフェイス名+Impl」って名前をつけるのはダサいよね。
http://d.hatena.ne.jp/wildcats/20061203/1165135539

ということらしいね。
僕も経験上、妙にクラスが増えたりいんたふぇーすが増えたりして、ごちゃごちゃしはじめて、結局イラナイモノだったってことが多い。動機付けがちゃんとできてないことが良く分かっちゃうね。
そのときに、リファクタリングして抽出すればいいってことは、
抽出できるようにしておくことが必要で。


つまりさ。
これって、こういう設計に分解できるな。
が、クラスの設計動機になることが問題で。
設計にできる可能性がある。
から、そういう変更を加えやすいようにメソッドを予め分けて書こうか。といった工夫が必要なんじゃないかな。


つまり、デザインパターンを活用することを予め考えて、でも実装とインタフェースを切り離さず、切り離しやすい状態に予めリファクタリングしておくってことかなぁ。


って、プレリファクタリングって本あったよねぇ。
いや、名前しか覚えてないけど。
学校の本屋にあったかな?立ち読みしてくるか。


追記:
wildcatsさんから、

私はデザインパターンの適用はあまり考えないんですけどオブジェクト指向設計原則のSRPを考えてみてからクラスを作りますね。後はGRASPパターンからみてメソッドを抽出したりとか。

SRPや、GRASPという言葉を初めて耳にします。ちょっと勉強してみます。