پل جو نمونو ڇا آهي؟
برج جو نمونو هڪ ڍانچي ڊيزائن جو نمونو آهي. اهو آهي، ان جو بنيادي ڪم طبقن ۽ شين جي هڪ مڪمل ڍانچي ٺاهڻ آهي. برج هن مسئلي کي حل ڪري ٿو هڪ يا وڌيڪ طبقن کي الڳ الڳ hierarchies - تجريد ۽ عمل ۾ ورهائي . ڪارڪردگيءَ ۾ هڪ تبديليءَ سان هڪ درجي بندي ٻئي ۾ تبديليءَ جي ضرورت ناهي. هر شي واضح لڳي ٿي، پر حقيقت ۾ هي تعريف تمام وسيع آهي ۽ بنيادي سوال جو جواب نٿو ڏئي: "برج جو نمونو ڇا آهي؟" مان سمجهان ٿو ته اهو توهان لاءِ عملي طور تي سمجهڻ آسان ٿيندو. اچو ته فوري طور تي پل جي نموني لاء هڪ کلاسک مثال نموني. اسان وٽ ھڪڙو خلاصو طبقو آھي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
, and . ڇهن طبقن جو ايترو وڏو معاملو ناهي. پر! جيڪڏهن اسان کي نئين شڪل يا رنگ شامل ڪرڻ جي ضرورت آهي، طبقن جو تعداد تيزيء سان وڌندو. ڪيئن هن صورتحال مان نڪرڻ لاء؟ فيلڊ ۾ رنگن کي محفوظ ڪرڻ ۽ شرطن جي ذريعي اختيارن جي ڪوشش ڪرڻ بهترين حل ناهي. هڪ سٺو حل هڪ الڳ انٽرفيس ۾ رنگ ڊسپلي ڪرڻ آهي . جلد ئي نه چيو ويو ته ڪيو ويو آهي: اچو ته هڪ انٽرفيس ٺاهيو ۽ ان جا ٽي نفاذ - , and : RectangleBlack
RectangleGreen
RectangleRed
Color
BlackColor
GreenColor
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(); }
اسان variable کي لاڳو ڪرڻ ۾
color
استعمال ڪنداسين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
؛ - Refined Abstraction - ڪلاسز
Triangle
,Rectangle
; - لاڳو ڪندڙ- انٽرفيس
Color
؛ - ڪنڪريٽ لاڳو ڪندڙ - ڪلاس
BlackColor
،GreenColor
۽RedColor
.
Shape
هڪ Abstraction جي نمائندگي ڪري ٿو - مختلف رنگن ۾ شڪلين جي رنگن کي ڪنٽرول ڪرڻ لاءِ هڪ ميکانيزم، جيڪو انٽرفيس تي عمل درآمد کي نمائندو ڪري ٿو Color
. ڪلاس حقيقي شيون Triangle
آهن Rectangle
جيڪي ڪلاس پاران پيش ڪيل ميڪانيزم کي استعمال ڪن ٿيون Shape
. BlackColor
, GreenColor
۽ RedColor
- خاص عمل درآمد شاخ ۾. اهي اڪثر ڪري هڪ پليٽ فارم سڏيو ويندو آهي.
پل جو نمونو ڪٿي استعمال ٿيندو آهي؟
هن نموني کي استعمال ڪرڻ جو هڪ وڏو فائدو اهو آهي ته توهان هڪ شاخ ۾ طبقن جي ڪارڪردگي ۾ تبديليون ڪري سگهو ٿا بغير ڪنهن ٻئي جي منطق کي ٽوڙڻ جي. اهو طريقو پڻ پروگرام طبقن جي ملائڻ کي گهٽائڻ ۾ مدد ڪري ٿو. نمونن کي استعمال ڪرڻ لاء بنيادي شرط "هدايتن تي عمل ڪرڻ" آهي: انهن کي ڪٿي به نه لٺ! دراصل، اچو ته ڄاڻون ته ڪهڙن حالتن ۾ توهان کي ضرور برج استعمال ڪرڻ جي ضرورت آهي:-
جيڪڏهن اهو ضروري آهي ته ادارن جي تعداد کي ٻن طرفن ۾ وڌايو وڃي (جاميٽري شڪلون، رنگ).
-
جيڪڏھن توھان ھڪڙي وڏي طبقي کي ورهائڻ چاھيو ٿا جيڪو ھڪڙي ذميواري جي اصول کي پورو نٿو ڪري، ننڍن طبقن ۾ تنگ پروفائل ڪارڪردگي سان.
-
جيڪڏهن پروگرام هلائڻ دوران ڪجهه ادارن جي آپريشن جي منطق ۾ تبديلي ڪرڻ جي ممڪن ضرورت آهي.
-
جيڪڏهن ضروري هجي ته، عمل کي لڪايو ڪلاس (لائبريري) ڪلائنٽ کان.
نموني جا فائدا ۽ نقصان
ٻين نمونن وانگر، پل جا فائدا ۽ نقصان ٻئي آهن. پل جا فائدا:- ڪوڊ اسپيبلٽي کي بهتر بڻائي ٿو - توهان پروگرام جي ڪنهن ٻئي حصي ۾ ڪجهه ٽوڙڻ جي خوف کان سواء ڪارڪردگي شامل ڪري سگهو ٿا.
- ذيلي طبقن جو تعداد گھٽائي ٿو - ڪم ڪري ٿو جڏھن اھو ضروري آھي ته ادارن جي تعداد کي ٻن طرفن ۾ وڌايو وڃي (مثال طور، شڪلن جو تعداد ۽ رنگن جو تعداد).
- اهو ممڪن بڻائي ٿو ٻن آزاد شاخن تي الڳ الڳ ڪم ڪرڻ Abstraction and Implementation - اهو ڪم ٻن مختلف ڊولپرز طرفان ڪري سگهجي ٿو بغير ڪنهن ٻئي جي ڪوڊ جي تفصيل ۾.
- طبقن جي ملائڻ کي گھٽائڻ - واحد جڳھ جتي ٻه طبقا ڳنڍيل آھن پل (فيلڊ
Color color
).
- مخصوص صورتحال ۽ مجموعي طور منصوبي جي جوڙجڪ تي منحصر ڪري، پروگرام جي پيداوار تي منفي اثر ٿي سگھي ٿو (مثال طور، جيڪڏھن وڌيڪ شيون شروع ڪرڻ جي ضرورت آھي).
- ڪلاسن جي وچ ۾ نيويگيٽ ڪرڻ جي ضرورت جي ڪري ڪوڊ پڙهڻ جي قابليت کي پيچيده ڪري ٿو.
GO TO FULL VERSION