型指定されたDataSetでビジネスルールの実装
前のトピックで単一継承ではビジネスルールの実装は力不足という点を指摘した。
これは、型指定されたDataSetの場合Partialクラスを利用してもドメインオブジェクトの同士の継承関係を実装することできないデメリットもビジネスルールを実装する観点ではそれほど重大な問題ではないと考えられるか。
ということでバリエーションのあるビジネスルールを型指定されたDataSetのPartialクラスに実装してみる
public interface IRentalSpanPolicy { int RentalSpan { get;} } public class UserRentalSpan : IRentalSpanPolicy { private RentalTitleRow _title; public UserRentalSpan(RentalTitleRow title) { _title = title; } public int RentalSpan { get { return _title.CurrentRentableCount > 1 ? _title.RentalRuleRow.RentalMaxSpan : 3; } } } public class MemberRentalSpan : IRentalSpanPolicy { private RentalTitleRow _title; public MemberRentalSpan(RentalTitleRow title) { _title = title; } public int RentalSpan { get { return _title.RentalRuleRow.RentalMaxSpan; } } } public class RentalSpanPolicyService { public IRentalSpanPolicy GetRentalPolicy(UserRow user, RentalTitleRow title) { if (user.IsMember) { return new UserRentalSpan(title); }else{ return new MemberRentalSpan(title); } } }