ورود

View Full Version : سوال: لایه Business Façade Layer چیست؟



Mishtolak
یک شنبه 28 فروردین 1390, 16:25 عصر
با سلام خدمت عزیزان
تا اونجا که متوجه شدم لایه Business Façade یه جور لایه سرویس هست که در لایه Business استفاده میشه. تو یه شمای گرافیکی دیدم این لایه هم با لایه Busuness Rules ارتباط داره هم مستقیم با لایه DAL. حالا چه کاری رو رو در ارتباط با این لایه ها باید انجام بده درست متوجه نشدم.
اگه دوستان لطف کنن بیشتر در مورد این لایه و اینکه در چه مواردی باید این لایه رو ایجاد کنیم توضیح بدن ممنون میشم. اگه یکی چند مورد موارد کاربردش رو مثال بزنید که عالی میشه.

با تشکر

mehdi.mousavi
یک شنبه 28 فروردین 1390, 17:49 عصر
سلام.
Façade (که فساد خونده میشه و یک واژه فرانسوی هستش) یکی از design pattern های موجوده که در اون Object ای، برای سادگی دسترسی به لایه یا لایه های پیچیده تری با Interface به مراتب ساده تر (و سبک تری) ایجاد میشه و در اختیار استفاده کننده قرار میگیره. فرض کنید "عملیات" شما به چند بخش تقسیم میشه و هر بخش توسط Sub-System های فربه تری پیاده سازی و سرویس دهی میشه. برای سهولت انجام اون "عملیات خاص"، اینترفیسی تعریف می کنیم و متودی فرضا فرضا به اسم Action1 روی اون اینترفیس میذاریم. این متود، جزییات فراخوانی و نحوه کارکرد با اون Sub-System ها رو میدونه... در نتیجه هنگامی که از بیرون قصد انجام اون "عملیات" رو داریم، فقط کافیه تا Action1 رو Call کنیم و دیگه به جزییات و چگونگی انجام اون عملیات کاری نداریم.

موفق باشید.

Mishtolak
دوشنبه 29 فروردین 1390, 22:26 عصر
از توضیح شما ممنونم. فقط هنوز زیاد برام واضح نیست چطور تشخیص بدم که در یک پروژه نیاز به ایجاد این لایه هست یا نه (منظورم اینه که انتخاب کنیم در پروژه فقط یک لایه BLL داشته باشیم یا Façadeرو هم داشته باشیم).
در ادامه اگر لینک مقاله یا مطلب جامع تری در خصوص این لایه باشه و اینکه در چه نوع پروژه هایی استفاده از آن مناسب است ممنون میشم لطف بفرمایید.

emad4000
شنبه 21 بهمن 1391, 21:51 عصر
تو یه شمای گرافیکی دیدم این لایه هم با لایه Busuness Rules ارتباط داره هم مستقیم با لایه DAL. حالا چه کاری رو رو در ارتباط با این لایه ها باید انجام بده درست متوجه نشدم.


مطمئن هستید؟ چون تا جایی که من میدونم این لایه مابین لایه Business و لایه Presentation قرار می گیره و با این دو لایه در ارتباط هست
لایه نمایش، متدهای این لایه رو فراخوانی می کنه و این لایه از توابع موجود در لایه منطق (کسب و کار) استفاده می کنه


فقط هنوز زیاد برام واضح نیست چطور تشخیص بدم که در یک پروژه نیاز به ایجاد این لایه هست یا نه (منظورم اینه که انتخاب کنیم در پروژه فقط یک لایه BLL داشته باشیم یا Façadeرو هم داشته باشیم).

بستگی به پیچیدگی پروژه ات داره. اگه اونقدر پیچیده هست که استفاده از چند زیرسیستم در لایه منطق باعث پایین اومدن خوانایی کد میشه، پس نیاز هست که این لایه رو هم داشته باشیم. از اونجایی که این لایه تاثیرات مثبت داره، پیشنهاد می کنم تو اکثر پروژه های نسبتاً بزرگ ازش استفاده کن، تنها ضررش، کمی کاهش سرعت در زمان بالا اومدن برنامه ات هست.

En_MK
یک شنبه 14 تیر 1394, 01:29 صبح
سلام
دوستان هم توضیحات شمارا مطالعهکردم هم چند مقاله دیگر اما متوجه نمیشوم
خوب وقتی ما یه پروژه چند لایه هم داشتیم همین بود دیگه!!
ارتباط با دیتابیس در DA - پیاده سازی قوانین واجرای متدها در Biz و کال کردن متد ها در لایه UI(حالا میتونستیم در interface هم استفاده کنیم یا در mvc با تفکیک لایه ها بازم همین کارو انجام میدادیم)
facade چی داره که متفادتش میکنه؟

پ.ن:یکی از مطالب درمورد facade
Facade رابط دسترسی به مجموعه برنامه، کامپوننت یا library داخلی را ساده تر و محدودتر می کند.این الگو را روی هر کتابخانه خارجی با دو هدف می توان پیاده سازی کرد. هدف اول اینکه فقط قسمت هایی از آن را که برنامه شما به آن نیاز دارد را در دسترس قرار دهید و هدف دوم این که اینترفیس کار با آن کتابخانه را هم برای خود و هم برای سایر برنامه نویسان ساده تر کنید.