給与計算

給与計算って一年前に行ったラショナルの研修のテキストにもあったなー。給与計算を例に使うのは誰が最初にはじめたんでしょうか。アジャイルソフトウェア開発の奥義以外でもどこかで見かけたような気がする。
そのテキストでは従業員エンティティに給与支払額を取得するというメソッドを持たせてました。講師の方に「従業員が自分の給料を自分で計算するって何か違和感あります」と言ったら「従業員が自分で計算して給料を申告すると考えればそれほど変ではないでしょう」と返ってきました。そのときはふーむそうなんですかと思いましたが...いまだに難しい問題です。給与計算の方法は従業員の種類によって変わるという仕様だったのですが、従業員の種類を継承関係で表すと扱いにくいですね、ということで、従業員に種別というインタフェースを持たせて実際の給与計算は種別インタフェースの実装クラスに委譲という形が良いということになりました。
そういえばエンティティにストラテジを差し込むという話はでてきましたっけ。