私は最近、以下のクラスに関して別の開発者との議論に入りました:
public class GroupBillingPayment
{
public void Save(IGroupBillingPayment model)
{
if (model == null || UserInfo.UserID == 0)
{
throw new Exception("GroupBillingPayment object or Current User Id is NULL , Please Contact Administrator.");
}
Data.GroupBillingPayment groupBillingPayment = RepositoryManager.GroupBillingPaymentRepository.GetById(model.GroupBillingPaymentID);
Mapper.Map(model, groupBillingPayment);
ServiceManager.GroupBilling.IsBillAlreadyCancelled(groupBillingPayment.GroupBillingID, THROW_ERROR);
groupBillingPayment.UpdatedBy = UserInfo.UserID;
groupBillingPayment.UpdatedOn = DateTime.Now;
RepositoryManager.GroupBillingPaymentRepository.Update(groupBillingPayment, false);
UpdateGroupBilling([Parameters])
}
}
私は信じてUpdateGroupBilling
それが単一責任の原則に違反するとして保存する方法の内部で呼ばれるべきではありません。しかし、支払いが行われるたびに、請求は更新されるべきであると彼は言います。したがって、これは正しいアプローチです。
私の質問、SRPはここで違反されていますか?はいの場合、両方の基準が満たされるように、より適切にリファクタリングするにはどうすればよいですか?