خرید بک لینک

سلام وقت به خیر
دوستان من یک برنامه به صورت سه لایه نوشتم که یک قسمتش وظیفه انتشار و ثبت بن خرید برای کارمندان شرکت رو بر عهده داره
ثبت اطلاعات بن خرید به این صورت انجام میشه که اطلاعات در لایه نمایش (Presentation Layer) گرفته میشه و به لایه منطق تجاری (Business Logic Layer) ارسال میشه :

کد PHP:

private void button1_Click(object sender, EventArgs e)
{
BonClass Obj = new BonClass();
Obj.PersoelID = textBox1.Text;
Obj.Description = textBox2.Text;
.
.
.
Obj.Insert();
}

بعد در لایه منطق تجاری اطلاعات توسط لایه دسترسی به داده (Data Access Layer) در دیتابیس ثبت میشه :

کد PHP:

class BonClass
{
DataAccessLayer DAL = new DataAccessLayer();
.
.
.
public
void Insert()
{
SqlParameter persoelIDParam = new SqlParameter("@PersoelID", this.PersoelID);
SqlParameter descriptionParam = new SqlParameter("@Description", this.Description);
.
.
.
DAL.ExecuteCommand("procBonInsert", CommandType.StoredProcedure, persoelIDParam, descriptionParam, ...);
}
.
.
.
}

برنامه باید قبل از ثبت بن خرید چک کنه که قبلا برای این کارمند بن خرید دیگه ای ثبت نشده باشه بعدش بن جدید رو ثبت کنه (هر کارمند فقط حق داشتن یک بن خرید در ماه رو داره)
من همیشه این جور شرط ها رو داخل لایه منطق تجاری و همون متد Insert پیاده سازی می کنم که زمانی که متد Insert در لایه نمایش صدا زده شد، تمامی شروط به صورت اتوماتیک چک بشن بعدش عمل Insert انجام بشه :

کد PHP:

class BonClass
{
DataAccessLayer DAL = new DataAccessLayer();
.
.
.
public
void Insert()
{
Checking Conditions //بررسی اینکه آیا قبلا بن خریدی برای کارمند ثبت شده یا نه
.
.
.
if(
Conditions true)
{
SqlParameter persoelIDParam = new SqlParameter("@PersoelID", this.PersoelID);
SqlParameter descriptionParam = new SqlParameter("@Description", this.Description);
.
.
.
DAL.ExecuteCommand("procBonInsert", CommandType.StoredProcedure, persoelIDParam, descriptionParam, ...);
}
}
.
.
.
}

دلیلم واسه این کار اینه که اینجوری منطق اصلی برنامم در کلاس هام (لایه منطق تجاری) پیاده سازی میشه و دیگه در لایه نمایش درگیر مسائلی که مربوط به منطق برنامه هست نمیشم و فقط اعتبار سنجی انجام میدم
حالا سوالم از دوستان و اساتید محترم اینه که آیا این روشی که من به کار بردم(بررسی شروط در همان لایه منطق تجاری و متد Insert)، معماری سه لایه رو به صورت اصولی و صحیح پیاده می کنه و منطبق بر مفاهیم معماری سه لایه هست یا نه ؟
چون یکی از دوستان میگفت باید این شرط رو در همان لایه نمایش چک کنی، چون بررسی این شرط هم یه جور اعتبار سنجیه !
ولی از نظر من اینجوری لایه نمایش هم درگیر منطق برنامه میشه که درست نیست...!
دوستان ممنون میشم نظراتتون رو مطرح کنید

- - , .

برچسب: نویسنده: محمد رضا جوادیان تاريخ: دوشنبه 17 اسفند 1394 ساعت: 18:23

صفحه بندی