پل جو نمونو ڇا آهي؟
پل جو نمونو هڪ ساختماني ڊيزائن جو نمونو آهي. ٻين لفظن ۾، ان جو مکيه ڪم طبقن ۽ شين مان هڪ مڪمل جوڙجڪ ٺاهڻ آهي. هڪ پل اهو ڪري ٿو هڪ يا وڌيڪ طبقن کي ورهائي جدا جدا درجي بندين ۾: تجريد ۽ عمل درآمد . ڪارڪردگيءَ ۾ هڪ تبديليءَ سان هڪ درجي بندي ٻئي ۾ تبديليءَ جي ضرورت نه آهي. اهو سڀ ٺيڪ ۽ سٺو آهي، پر هي تعريف تمام وسيع آهي ۽ سڀ کان اهم سوال جو جواب نٿو ڏئي: "پل جو نمونو ڇا آهي؟" منهنجو خيال آهي ته توهان لاءِ ان جي عملي درخواست کي سمجهڻ آسان ٿيندو. تنهنڪري صحيح بند، اچو ته پل جي نموني لاء هڪ شاندار منظر ٺاهي. اسان وٽ ھڪڙو خلاصوShape
طبقو آھي، جيڪو ھڪڙو عام جاميٽري شڪل جي نمائندگي ڪري ٿو:
-
شڪل.جاوا
public abstract class Shape { public abstract void draw(); }
جڏهن اسان ٽڪنڊيز ۽ مستطيل وانگر شڪلون شامل ڪرڻ جو فيصلو ڪريون ٿا، ته اسان انهن کي ورثي واري طبقي ۾ آڻينداسين
Shape
: -
Rectangle.java:
public class Rectangle extends Shape { @Override public void draw() { System.out.println("Drawing rectangle"); } }
-
Triangle.java:
public class Triangle extends Shape { @Override public void draw() { System.out.println("Drawing triangle"); } }
draw()
طريقي جي ڪارڪردگي هن رنگ تي منحصر هوندو. طريقن جي مختلف عملن کي حاصل ڪرڻ لاء draw()
، پوء اسان کي هر شڪل-رنگ ميلاپ لاء هڪ ڪلاس ٺاهڻ جي ضرورت آهي. جيڪڏهن اسان وٽ ٽي رنگ آهن، پوء اسان کي ڇهن طبقن جي ضرورت آهي: TriangleBlack
, TriangleGreen
, TriangleRed
, RectangleBlack
, RectangleGreen
and RectangleRed
. ڇهن طبقن اهڙو ڪو وڏو مسئلو ناهي. پر! جيڪڏهن اسان کي نئين شڪل يا رنگ شامل ڪرڻ جي ضرورت آهي، پوء طبقن جو تعداد تيزيء سان وڌندو. ڪيئن هن صورتحال مان نڪرڻ لاء؟ هڪ فيلڊ ۾ رنگ محفوظ ڪرڻ ۽ سڀني اختيارن کي ڳڻڻ شرطي بيانن کي استعمال ڪندي بهترين حل ناهي. هڪ سٺو حل هڪ الڳ انٽرفيس ڏانهن رنگ منتقل ڪرڻ آهي . جلد ئي نه چيو ويو آهي: اچو ته Color
ٽن عملن سان هڪ انٽرفيس ٺاهيون: BlackColor
, GreenColor
and RedColor
:
-
رنگ جاوا:
public interface Color { void fillColor(); }
-
BlackColor.java:
public class BlackColor implements Color { @Override public void fillColor() { System.out.println("Filling in black color"); } }
-
GreenColor.java
public class GreenColor implements Color { @Override public void fillColor() { System.out.println("Filling in green color"); } }
-
ڳاڙهو رنگ.java
public class RedColor implements Color { @Override public void fillColor() { System.out.println("Filling in red color"); } }
هاڻي اسان ڪلاس
Color
۾ هڪ فيلڊ شامل ڪيوShape
. اسان ان جي قيمت ٺاھيندڙ ۾ حاصل ڪنداسين. -
Shape.java:
public abstract class Shape { protected Color color; public Shape(Color color) { this.color = color; } public abstract void draw(); }
color
اسان variable کي لاڳو ڪرڻ ۾ استعمال ڪنداسينShape
. هن جو مطلب اهو آهي ته شڪلون هاڻي انٽرفيس جي ڪارڪردگي کي استعمال ڪري سگهن ٿيونColor
. -
مستطيل.جاوا
public class Rectangle extends Shape { public Rectangle(Color color) { super(color); } @Override public void draw() { System.out.println("Drawing rectangle"); color.fillColor(); } }
Color color
هڪ پل آهي جيڪو ٻن الڳ طبقن جي درجه بندي کي ڳنڍي ٿو.
ڪيئن هڪ پل تعمير ڪرڻ: خلاصو ۽ عمل درآمد
اچو ته هڪ ڪلاس ڊياگرام تي نظر رکون جيڪو پل جي نموني کي ظاهر ڪري ٿو: هتي توهان ٻه آزاد جوڙجڪ ڏسي سگهو ٿا جيڪي هڪ ٻئي جي ڪارڪردگي کي متاثر ڪرڻ کان سواء تبديل ڪري سگھجن ٿيون. اسان جي صورت ۾:- خلاصو
Shape
طبقو آهي - RefinedAbstraction is
Triangle
andRectangle
classes Color
لاڳو ڪندڙ انٽرفيس آهي- ConcreteImplementor آهي
BlackColor
,GreenColor
andRedColor
classes.
Shape
هڪ خلاصو آهي - مختلف رنگن سان شڪلين جي ڀرڻ کي منظم ڪرڻ لاءِ هڪ ميکانيزم، جيڪو انٽرفيس ڏانهن نمائندو ڪري ٿو Color
(تطبيق ڪندڙ). ۽ ڪلاس ڪنڪريٽ ڪلاس آھن جيڪي طبقن پاران دستياب Triangle
ڪيل Rectangle
ميکانيزم کي استعمال ڪن ٿا Shape
. BlackColor
، GreenColor
۽ RedColor
لاڳو ڪرڻ واري درجي بندي ۾ ڪنڪريٽ لاڳو ڪندڙ آهن.
ڪٿي پل جو نمونو استعمال ڪرڻ لاء
هن نموني کي استعمال ڪرڻ جو هڪ وڏو فائدو اهو آهي ته توهان ٻئي جي منطق کي ٽوڙڻ کان سواء هڪ درجه بندي ۾ فنڪشنل طبقن ۾ تبديليون ڪري سگهو ٿا. انهي سان گڏ، هي طريقو طبقن جي وچ ۾ ملائڻ کي گهٽائڻ ۾ مدد ڪري ٿو. هن نموني کي استعمال ڪرڻ وقت بنيادي ضرورت آهي "هدايتن تي عمل ڪريو" - انهن مان ڪنهن کي به نظرانداز نه ڪريو! انهي جي پڇاڙيء ۾، اچو ته حالتون معلوم ڪريو جڏهن توهان کي ضرور استعمال ڪرڻ گهرجي پل جو نمونو:-
جيڪڏھن توھان کي وڌائڻ جي ضرورت آھي ادارن جو تعداد ٻن تصورن جي ميلاپ جي بنياد تي (مثال طور شڪلون ۽ رنگ).
-
جيڪڏھن توھان ھڪڙي وڏي طبقي کي ورهائڻ چاھيو ٿا جيڪو ھڪڙي ذميواري جي اصول کي پورو نٿو ڪري ننڍن طبقن ۾ جيڪي تنگ ڪارڪردگي آھن.
-
جيڪڏهن اهو ضروري آهي ته ڪجهه ادارن جي منطق ۾ تبديليون جڏهن پروگرام هلندي آهي.
-
جيڪڏهن اهو ضروري آهي ته ڪلاس يا لائبريري جي ڪلائنٽ کان عمل کي لڪائڻ لاء.
نموني جا فائدا ۽ نقصان
ٻين نمونن وانگر، هڪ پل جا فائدا ۽ نقصان ٻئي آهن. پل جي نموني جا فائدا:- اهو ڪوڊ جي اسپيبلٽي کي بهتر بڻائي ٿو - توهان پروگرام جي ڪنهن ٻئي حصي ۾ ڪجهه ٽوڙڻ جي خوف کان سواء ڪارڪردگي شامل ڪري سگهو ٿا.
- اهو ذيلي طبقن جو تعداد گھٽائي ٿو جڏهن ادارن جو تعداد ٻي صورت ۾ ٻن تصورن جي ميلاپ تي ٻڌل هوندو (مثال طور، شڪلون ۽ رنگ).
- اهو ممڪن بنائي ٿو ته الڳ الڳ ڪم ڪرڻ لاءِ ٻن الڳ الڳ سرشتن تي - Abstraction and Implementation. ٻه مختلف ڊولپرز هڪ ٻئي جي ڪوڊ جي تفصيلن ۾ شامل ٿيڻ کان سواءِ تبديليون آڻي سگهن ٿا.
- اهو طبقن جي وچ ۾ جوڙيندڙ کي گھٽائي ٿو - واحد جڳهه جتي ٻه طبقن کي گڏ ڪيو ويو آهي پل (يعني فيلڊ
Color color
).
- مخصوص صورتحال ۽ منصوبي جي مجموعي ڍانچي تي مدار رکندي، اهو پروگرام جي ڪارڪردگي کي منفي طور تي متاثر ڪري سگهي ٿو (مثال طور، جيڪڏهن توهان کي وڌيڪ شيون شروع ڪرڻ جي ضرورت آهي).
- ٻن طبقن جي وچ ۾ سوئچ ڪرڻ جي ضرورت جي ڪري اهو ڪوڊ گهٽ پڙهڻ لائق بڻائي ٿو.
GO TO FULL VERSION