-طبق سادهترین اصول برنامه نویسی و طراحی نرم افزار هر متد باید جهت انجام دادن فعالیتهای خود قبل از انجام عملیات دادههای ورودی را Validate کند و در صورتی که دیتای ورودی با دیتای مورد انتظار سنخیتی نداشت خطای لازم را صادرکند.
-این مسئله باید بر روی متد هایی که بر روی دادهها اعمالی را انجام داده یا متد هایی که فرآیندهای بیزینسی را پیگیری میکنند انجام شود
-به نظر شما متدی که دادههای مربوط به تنها کاری که انجام میدهد را اعتبار سنجی کند، اصل SRP را نقض کرده است!؟
-شما میتوانید در پروژههای اصلی کدهای مربوط به اعتبار سنجی(اعتبارسنجیهای استاندارد) را در قالب یک ساختار کلاس بندی شده یا بصورت Aspect در متدهای خود استفاده کنید تا از تکرار کدها جلوگیری کنید.
- در بالا هم ذکر کردم که این متد فقط یک عمکرد بیزینسی را انجام میدهد، و قسمت مربوط به اعتبار سنجی دادههای ورودی یک مسئولیت جدید محسوب نمیشود.
-اینکه پارامتر متد به صورت string در نظر گرفته شده اند به خاطر ذکر مثال میباشد، این مسئله هم کاملا بدیهی است که در نظرگرفتن این پارامتر بصورت decimal اعتبار سنجیهای اضافی را از بین میبرد.