PDA

View Full Version : اعتبار سنجی منطق تجاری برنامه



sasansara
شنبه 01 بهمن 1390, 11:47 صبح
اعتبار سنجی (validation) صحیح منطق تجاری (business) برنامه ، در معماری چند لایه کجا باید انجام بشه؟

مثلا من می خوام موجودیت e رو درج کنم ، تابع زیر رو باید در UI فراخوانی کنم:

e.Add();

فرض کنید دو تا اعتبار سنجی هم قبلش نیازه:

1- این موجودیت قبلا وجود داشته؟ e.Exist();
2- تاریخ درج صحیح است؟ e.DateIsValid();

سئوال: به نظر شما این اعتبارسنجی ها چطور باید فراخوانی بشه؟ من دو راه به ذهنم می رسه:

1- در UI این دو تا اعتبار سنجی فراخوانی بشه. اگه پیغامی برگشت داده شد به کاربر نمایش داده بشه و اگه داده معتبر بود تابع Add فراخوانی بشه.

if(e.exist())
{//....}
else if( e.DateIsValid())
{e.Add();}
else {//...}

مشکل : UI باید بدونه که این اعتبار سنجی ها باید انجام بشه و قبل از هر Add اونها رو فراخوانی کنه .

2- اعتبار سنجی ها داخل خود تابع Add فراخوانی بشه و UI فقط Add رو فراخوانی کنه و اگه پیغامی برگشت داده شد اون رو به کاربر نمایش بده.

مشکل: UI چطور بفهمه عمل درج مجاز بوده و انجام شده یا نه. اگه تابعی نیاز داشته باشه نتیجه ای رو برگردونه، پیغام های اعتبارسنجی چطور به UI برگردونده بشه.

sasansara
جمعه 07 بهمن 1390, 01:47 صبح
سوال نامفهوم و گنگ بود یا خیلی پرت؟ چرا دوستان کمکی نمی کنن؟