زمان تخمینی مطالعه: 3 دقیقه
الگوهای طراحی Structural در مهندسی نرم افزار و برنامه نویسی به نحوه ترکیب کلاسها و اشیاء برای تشکیل ساختارهای بزرگتر مربوط میشود، در حالی که این ساختارها را انعطافپذیر و کارآمد نگه میدارند. الگوهای کلاس ساختاری(Structural) از وراثت برای ایجاد اینترفیس یا پیادهسازی استفاده میکنند. در نظر بگیرید که چگونه وراثت چندگانه، دو یا چند کلاس را در یک کلاس ترکیب میکنند. همواره نتیجه این عمل کلاسی است که ویژگیهای کلاسهای والد خود را ترکیب میکند.
در این الگوها که زیر مجموعهای از الگوهای طراحی است همواره دو موضوع تکرار شونده وجود دارد. مورد اول اینکه این الگوها به ویژه برای ساخت کتابخانههای کلاس توسعهیافته مستقل که با هم کار میکند مفید هستند. همچنین الگوهای طراحی Structural راههایی را برای ترکیب اشیاء به منظور تحقق عملکرد جدید توصیف میکنند. انعطافپذیری افزوده شده به ترکیب اشیاء از توانایی تغییر ترکیب در زمان اجرا ناشی میشود که با ترکیب کلاس ایستا غیرممکن است.
در ادامه زیر دستههای این الگوی طراحی آورده شده است که در مقالات بعدی آنها را به تفکیک تشریح خواهیم کرد:
دستههای اصلی الگوهای طراحی Structural
الگوهای طراحی ساختاری دارای هفت زیر دسته اصلی است که در ادامه ذکر شده است:
- الگوی Adapter : این مورد یک الگوی طراحی ساختاری است که به اشیا با اینترفیسهای ناسازگار اجازه همکاری با هم را میدهد.
- الگوی Bridge : در واقع Bridge یک الگو است که به شما امکان میدهد که یک کلاس بزرگ یا مجموعهای از کلاسهای نزدیک به هم را به دو سلسله مراتب مجزا تقسیم کنید که شامل دسته انتزاعی و دسته پیادهسازی شده است. اسن دستهها میتوانند مستقل از یکدیگر توسعه یابند.
- الگوی Composite : الگوی کامپوزیت یک الگوی طراحی ساختاری است که به شما امکان میدهد اشیاء را در ساختارهای درختی ترکیب کنید و سپس با این ساختارها به گونهای کار کنید که گویی اشیائی منفرد هستند.
- الگوی Decorator : دکوراتور یک الگوی Structural است که به شما امکان میدهد با قرار دادن این اشیاء در داخل اشیاء لفاف دار مخصوص که حاوی رفتارها هستند، رفتارهای جدیدی را به اشیا بچسبانید.
- الگوی Facade : در واقع Facade یک الگوی طراحی است که یک رابط ساده برای یک کتابخانه، یک چارچوب یا هر مجموعه پیچیده دیگری از کلاسها ارائه میدهد.
- الگوی Flyweight : این مفهوم به شما امکان میدهد اشیاء بیشتری را در داخل مقدار RAM موجود در سیستم جای دهید این کار با به اشتراک گذاشتن قسمتهای مشترک حالت بین چندین شی به جای نگه داشتن تمام دادهها در هر شی، انجام میشود.
- الگوی Proxy : الگوی پروکسی یک الگوی طراحی ساختاری است که به کاربر امکان میدهد یک جایگزین یا مکان نگهدار(placeholder) برای یک شی دیگر تهیه کنید. یک پروکسی دسترسی به شی اصلی را کنترل میکند و به شما امکان میدهد قبل یا بعد از ارسال درخواست به شی اصلی، کاری را انجام دهید.