PDA

View Full Version : تفاوت designe paterrn



ghazal_mcn
پنج شنبه 07 آذر 1392, 19:19 عصر
سلام
ببخشید کسی میتونه تو فهم دیزاین پترن
abstarct factory
builder
کمکی کنه؟!
با یه مثال بدیهی...

cups_of_java
جمعه 08 آذر 1392, 13:57 عصر
abstarct factory برای یکسان کردن ایجاد اشیا از یک سلسه مراتب توارثی هستش. یعنی کاربر بتونه هر نوعی از کلاس های توی سلسله مراتب وراثت رو با یک متد Factory بدست بیاره. روش ساخت اینا فرق می کنه اما همه به نوعی زیر نوع هم هستن. مثالش می تونه خرید بلیط از آزانس هواپیمایی باشه. وقتی شما درخواست نوعی بلیط میدی (درچه یک، معمولی، business class . ...) دیگه نمی دونی جزییات خرید و ایجاد اون بلیط خاص چطوریه. فقط بلیط رو از آزانس میکیری و این اونه که می دونه از کدوم شرکت با چه روشی کدوم نوع بلیط رو برات بگیره.

Builder خیلی به توارث اون نوع ها ربطی نداره. و مال زمانی هست که ایجاد یک شی پیچیدست و خودش از مراحل دیگه ای تشکیل شده. مثلن از ساخت و ایجاد زیر اجزا یا شی های دیگه! و شما هم می خوای بعدن بتونی این پروسه ایجاد شی رو کنترل کنی و یعضی قسمت هاش رو عوض کنی! مثلن خط تولید اتوموبیل توی کارخونه همین Builder هستش. ممکنه توی خط تولید بخوای نوع نصب آینه بغل به ماشین رو عوض کنی. این نباید بقیه پروسه ساخت ماشین رو تحت تاثیر قرار بده.
مثال دیگه BUilder فست فوده: وفتی شما میری فست فود سفارش (شام یک نفره) شامل ساندویچ و سیب زمینی سرخ کرده و نوشابه میدی. اونا برات Buildاش می کنن و یه سینیه کامل بهت میدن. تو دیگه نمی دونی هر کدوم اون اجزا چطوری و با چه جزییاتی ایجاد شدن و توی اون سینی گذاشته شدن.

ghazal_mcn
جمعه 08 آذر 1392, 20:16 عصر
ممنون از توضیحتون..پس با تعریفی ک از builderداشتین ..فرق bulder با factoryچطور میشه؟

cups_of_java
جمعه 08 آذر 1392, 21:18 عصر
ای بابا من که فرقشون رو توضیح دادم! میخوای جمله حفظی از اینجا کپی کنی ببری بدی استادت؟