دیزاین پترن Bridge

دیزاین پترن Bridge

Structural Design Patterns

یکی از زیرشاخه های الگوهای طراحی، Structural Design Patterns است. این الگوها در مورد چگونگی ترکیب اشیاء و کلاس ها بایکدیگر صحبت میکند.

Bridge Design Pattern

این پترن یکی از زیرشاخه های الگوهای طراحی از نوع Structural است.

از دیزاین پترن Bridge یا پل زمانی استفاده میشود که بخواهیم بین انتزاع یا abstraction با پیاده سازی یا implementation یک جداسازی انجام دهیم.

میزان استفاده :  متوسط

طبق معمول از اینترفیس شروع میکنیم. فرض کنید اینترفیسی تحت نام IDrawable داریم که یک متد جهت رسم شکل دارد.

اگر میخواستیم مستقیما کلاس های Circle و … را پیاده سازی کنیم، این کلاس ها را از IDrawable ارث میبردیم و پیاده سازی میکردیم. اما همانطور که گفته شد، قرار است تا بین پیاده سازی و انتزاع یک فاصله ای ایجاد کنیم. جهت ایجاد این فاصله از دیزاین پترن bridge استفاده میکنیم. پس ابتدا یک کلاس با نام Shape ایجاد میکنیم که بین پیاده سازی کلاس های فرزند و اینترفیس قرار میگیرد.

در این کلاس از سازنده جهت dependency injection استفاده میکنیم و شیئی از نوع IDrawable را میسازیم.

جهت ملموس شدن قضیه کلاس Circle را بصورت زیر مینویسیم.

همانطور که در کلاس Circle میبینید، کلاس circle از Shape ارث بری کرده است و از IDrawable بصورت مستقیم ارث بری نکرده و به جای ارث بری از IDrawable آن را از سازنده دریافت کرده.

حال کلاس RedCircle که یک دایره ی قرمز است را بصورت زیر مینویسیم.

این کلاس از اینترفیس IDrawable بصورت مستقیم ارث بری کرده.

حال نوبت به فراخوانی در متد main میرسد.

شاید در نگاه اول کمی گیج کننده باشد اما رفته رفته آن را ساده میکنیم.

شیئی از نوع Shape میسازیم.

چون Circle از Shape ارث بری کرده است میتوانیم آن را new کنیم و در این متغیر بریزیم.

کلاس Circle به عنوان ورودی از constructor خود شیئی از نوع IDrawable میخواهد و چون RedCircle از این نوع است میتواند به عنوان ورودی مقدار دهی شود.

و در نهایت از شیء ایجاد شده متد DrawShape را صدا میزنیم.

bridge-design-pattern

پرینت صفحه دانلود این آموزش

هولوسن

با من یاد بگیر

آموزش های بیشتر در وبسایت هولوسن : https://holosen.net

بدون نظر

فرم ارسال نظر