فرض کن جلوی یه ساختمون خیلی شیک و بزرگ وایسادی، ولی لازم نیست بری داخلش و همه اتاقاشو ببینی. فقط کافیه از بیرون، نمای ساده و مرتبش رو ببینی و کارتو راه بندازی. پترن Facade دقیقاً همینه! یه رابط کاربری ساده میده که دیگه لازم نباشه با پیچیدگیهای سیستم درگیر بشی.
دو تا اصل مهم دنیای کدنویسی اینجا برامون روشنتر میشه:
وقتی از Facade استفاده میکنی، پیچیدگیهای پشت پرده سیستم رو قایم میکنی و فقط چیزی که کاربر (یا حتی خودت!) نیاز داری رو نشون میدی. کدت مرتبتر، قابل نگهداریتر و قابلفهمتر میشه.
فرض کن میخوای به دیتابیس وصل بشی، کوئری بزنی و قطع کنی. بدون Facade اینجوریه:
type Database struct {
DatabaseConnection *sql.DB
}
func (db *Database) Connect() {
// کد اتصال
}
func (db *Database) Query() {
// کد کوئری
}
func (db *Database) Disconnect() {
// قطع اتصال
}
// استفاده
var db Database
db.Connect()
db.Query()
db.Disconnect()
ولی با Facade، همه اینا تو یه دونه تابع جمع میشه:
type DatabaseFacade struct {
Database *Database
}
func (dbf *DatabaseFacade) ExecuteQuery() {
dbf.Database.Connect()
dbf.Database.Query()
dbf.Database.Disconnect()
}
// استفاده
var dbf DatabaseFacade
dbf.ExecuteQuery()
کار با فایلها
ارتباط با API
راهاندازی وبسرور
مدیریت سفارشهای فروشگاه آنلاین
دیزاین پترن Facade، یه ابزار فوقالعاده برای سادهسازی و مرتب کردن کدهاتونه. اما همونطور که هر چیزی حد داره، از این پترن هم فقط وقتی استفاده کن که به درد بخوره و لازم باشه.
شما چطور از Facade استفاده کردید تجربههاتون رو تو کامنتها بگید.
#الگوی_طراحی #Facade #گو #گولنگ #Go #Golang #KISS #DRY
Please open Telegram to view this post
VIEW IN TELEGRAM