الگوی کارخانه انتزاعی، در الگوهای نرم افزاری روشی برای جمع بندی گروهی از کارخانه های مجازی است که ساختار مشابهی دارند ولی از کلاس های مختلفی تشکیل شده اند . [ ۱]
به طور مثال کلاس کتابخانه انتزاعی DocumentCreator که رابطی برای ساخت تعدادی از کتابخانه ها ( ازجمله createLetter و createResume ) را فراهم می کند. این سامانه می تواند به هر تعداد از نسخه های کتابخانه های مشتق شده از کلاس DocumentCreator را داشته باشد. مثل FancyDocumentCreator یا ModernDocumentCreator هر کدام با یک پیاده سازی متفاوت از createLetter و createResume شی های مربوط را تولید کنند. و هر کدام از یک کلاس انتزاعی ثابتی مانند Letter یا Resume ساخته می شوند. برنامه زیرشاخه یک ساخته از DocumentCreator را دریافت می کند که به آن کارخانه انتزاعی گفته می شود. اشیاء ساخته شده همگی توسط یک DocumentCreator ساخته می شوند و ساختار مشابهی خواهند داشت. برنامه زیرشاخه تنها نیاز است بداند که چگونه یک کلاس از نوع Letter یا Resume را که از کارخانه می گیرد استفاده کند.
کارخانه محل کلاس های متشابه داخل کد که اشیاء از آنها ساخته می شوند می باشد. هدف پیاده سازی الگو جداسازی ساخت اشیاء از استفاده آنها و ساخت خانواده هایی از اشیاء مرتبط بدون نیاز به وابستگی به نوع کلاس آن هاست.
استفاده از این الگو تغییر پیاده سازی های متفاوت را بدون تغییر برنامه هایی که از این پیاده سازی ها استفاده می کنند را ممکن کرده است. هرچند، استفاده از این الگو، مانند الگوهای متشابه، ممکن است باعث پیچیدگی و کار اضافه در نوشتن کد اولیه شود. همچنین جداسازی و انتزاعی کردن در سطح های بالا ممکن است موجب امکان اشکال زدایی و مراقبت از سامانه ها را سخت تر بکند.
به طور کلی الگوی Abstract Factory برای ساخت برنامه های قابل توسعه و قابل تغییر مفید است. این الگو به برنامه نویسان امکان می دهد تا برنامه های پیچیده را با استفاده از شی های ساختاری ساده تر و با استفاده از استانداردهای مشترک طراحی کنند.
برای مثال، فرض کنید که یک برنامه نیاز به ساخت شی های گوناگونی دارد که هر کدام نیاز به پردازش های مختلفی دارند. با استفاده از الگوی Abstract Factory، می توان یک کلاس فابریک ایجاد کرد که برای هر نوع شی مورد نیاز، یک شی جدید ایجاد کند و پردازش های مختلف را برای آن ها انجام دهد. به عنوان مثال، یک الگوی Abstract Factory برای ساخت شی های گوناگونی می تواند به کار گرفته شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفبه طور مثال کلاس کتابخانه انتزاعی DocumentCreator که رابطی برای ساخت تعدادی از کتابخانه ها ( ازجمله createLetter و createResume ) را فراهم می کند. این سامانه می تواند به هر تعداد از نسخه های کتابخانه های مشتق شده از کلاس DocumentCreator را داشته باشد. مثل FancyDocumentCreator یا ModernDocumentCreator هر کدام با یک پیاده سازی متفاوت از createLetter و createResume شی های مربوط را تولید کنند. و هر کدام از یک کلاس انتزاعی ثابتی مانند Letter یا Resume ساخته می شوند. برنامه زیرشاخه یک ساخته از DocumentCreator را دریافت می کند که به آن کارخانه انتزاعی گفته می شود. اشیاء ساخته شده همگی توسط یک DocumentCreator ساخته می شوند و ساختار مشابهی خواهند داشت. برنامه زیرشاخه تنها نیاز است بداند که چگونه یک کلاس از نوع Letter یا Resume را که از کارخانه می گیرد استفاده کند.
کارخانه محل کلاس های متشابه داخل کد که اشیاء از آنها ساخته می شوند می باشد. هدف پیاده سازی الگو جداسازی ساخت اشیاء از استفاده آنها و ساخت خانواده هایی از اشیاء مرتبط بدون نیاز به وابستگی به نوع کلاس آن هاست.
استفاده از این الگو تغییر پیاده سازی های متفاوت را بدون تغییر برنامه هایی که از این پیاده سازی ها استفاده می کنند را ممکن کرده است. هرچند، استفاده از این الگو، مانند الگوهای متشابه، ممکن است باعث پیچیدگی و کار اضافه در نوشتن کد اولیه شود. همچنین جداسازی و انتزاعی کردن در سطح های بالا ممکن است موجب امکان اشکال زدایی و مراقبت از سامانه ها را سخت تر بکند.
به طور کلی الگوی Abstract Factory برای ساخت برنامه های قابل توسعه و قابل تغییر مفید است. این الگو به برنامه نویسان امکان می دهد تا برنامه های پیچیده را با استفاده از شی های ساختاری ساده تر و با استفاده از استانداردهای مشترک طراحی کنند.
برای مثال، فرض کنید که یک برنامه نیاز به ساخت شی های گوناگونی دارد که هر کدام نیاز به پردازش های مختلفی دارند. با استفاده از الگوی Abstract Factory، می توان یک کلاس فابریک ایجاد کرد که برای هر نوع شی مورد نیاز، یک شی جدید ایجاد کند و پردازش های مختلف را برای آن ها انجام دهد. به عنوان مثال، یک الگوی Abstract Factory برای ساخت شی های گوناگونی می تواند به کار گرفته شود.
wiki: الگوی کارخانه انتزاعی