ぶっちゃけ今ペット関連のサイト作ってるわけですけど、今までこういう仕様でした。 会員は無料会員とペット屋会員の2種類。 内部的には無料会員はMemberというクラスで、ペット屋会員はMemberを継承するPetShopMemberというクラスで管理していたわけ。データベース的にはmembersというテーブルで単一テーブル継承。 で、無料会員とペット屋会員それぞれでサンプルデータが入ってプロトタイプができあがっていたわけです。 そこへ本日の仕様変更 「新たにブリーダー会員を追加!仕様はペット屋会員と全く同じ!」 です。一見簡単なようですが、ここでコピペプログラミングをしちゃうとDRY原則(Don't Repeat Yourself)に反してしまいます。そこで、できるだけロジックで差分をプログラミングするようにします。 初めはPetShopMemberをさらに継承してBreederという