CodeGym /جاوا بلاگ /Random-SD /پل جي ڊيزائن جو نمونو
John Squirrels
سطح
San Francisco

پل جي ڊيزائن جو نمونو

گروپ ۾ شايع ٿيل
سلام اسان هاڻي هڪ وسيع ۽ انتهائي اهم مفيد موضوع تي غور ڪرڻ جاري رکون ٿا: ڊيزائن جي نمونن. اڄ اچو ته پل جي نموني بابت ڳالهايون. ٻين نمونن وانگر، پل جو نمونو عام مسئلن کي حل ڪرڻ جي خدمت ڪري ٿو جيڪو هڪ ڊولپر کي منهن ڏئي ٿو جڏهن سافٽ ويئر آرڪيٽيڪچر ڊزائين ڪرڻ. اڄ اچو ته هن نموني جي خاصيتن جو مطالعو ڪريو ۽ معلوم ڪريو ته ان کي ڪيئن استعمال ڪجي.

پل جو نمونو ڇا آهي؟

پل جو نمونو هڪ ساختماني ڊيزائن جو نمونو آهي. ٻين لفظن ۾، ان جو مکيه ڪم طبقن ۽ شين مان هڪ مڪمل جوڙجڪ ٺاهڻ آهي. هڪ پل اهو ڪري ٿو هڪ يا وڌيڪ طبقن کي ورهائي جدا جدا درجي بندين ۾: تجريد ۽ عمل درآمد . ڪارڪردگيءَ ۾ هڪ تبديليءَ سان هڪ درجي بندي ٻئي ۾ تبديليءَ جي ضرورت نه آهي. اهو سڀ ٺيڪ ۽ سٺو آهي، پر هي تعريف تمام وسيع آهي ۽ سڀ کان اهم سوال جو جواب نٿو ڏئي: "پل جو نمونو ڇا آهي؟" منهنجو خيال آهي ته توهان لاءِ ان جي عملي درخواست کي سمجهڻ آسان ٿيندو. تنهنڪري صحيح بند، اچو ته پل جي نموني لاء هڪ شاندار منظر ٺاهي. اسان وٽ ھڪڙو خلاصو 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, RectangleGreenand RectangleRed. ڇهن طبقن اهڙو ڪو وڏو مسئلو ناهي. پر! جيڪڏهن اسان کي نئين شڪل يا رنگ شامل ڪرڻ جي ضرورت آهي، پوء طبقن جو تعداد تيزيء سان وڌندو. ڪيئن هن صورتحال مان نڪرڻ لاء؟ هڪ فيلڊ ۾ رنگ محفوظ ڪرڻ ۽ سڀني اختيارن کي ڳڻڻ شرطي بيانن کي استعمال ڪندي بهترين حل ناهي. هڪ سٺو حل هڪ الڳ انٽرفيس ڏانهن رنگ منتقل ڪرڻ آهي . جلد ئي نه چيو ويو آهي: اچو ته Colorٽن عملن سان هڪ انٽرفيس ٺاهيون: BlackColor, GreenColorand 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هڪ پل آهي جيڪو ٻن الڳ طبقن جي درجه بندي کي ڳنڍي ٿو.

ڪيئن هڪ پل تعمير ڪرڻ: خلاصو ۽ عمل درآمد

اچو ته هڪ ڪلاس ڊياگرام تي نظر رکون جيڪو پل جي نموني کي ظاهر ڪري ٿو: پل جي ڊيزائن جو نمونو متعارف ڪرايو - 2هتي توهان ٻه آزاد جوڙجڪ ڏسي سگهو ٿا جيڪي هڪ ٻئي جي ڪارڪردگي کي متاثر ڪرڻ کان سواء تبديل ڪري سگھجن ٿيون. اسان جي صورت ۾:
  • خلاصو Shapeطبقو آهي
  • RefinedAbstraction is Triangleand Rectangleclasses
  • Colorلاڳو ڪندڙ انٽرفيس آهي
  • ConcreteImplementor آهي BlackColor, GreenColorand RedColorclasses.
ڪلاس Shapeهڪ خلاصو آهي - مختلف رنگن سان شڪلين جي ڀرڻ کي منظم ڪرڻ لاءِ هڪ ميکانيزم، جيڪو انٽرفيس ڏانهن نمائندو ڪري ٿو Color(تطبيق ڪندڙ). ۽ ڪلاس ڪنڪريٽ ڪلاس آھن جيڪي طبقن پاران دستياب Triangleڪيل Rectangleميکانيزم کي استعمال ڪن ٿا Shape. BlackColor، GreenColor۽ RedColorلاڳو ڪرڻ واري درجي بندي ۾ ڪنڪريٽ لاڳو ڪندڙ آهن.

ڪٿي پل جو نمونو استعمال ڪرڻ لاء

هن نموني کي استعمال ڪرڻ جو هڪ وڏو فائدو اهو آهي ته توهان ٻئي جي منطق کي ٽوڙڻ کان سواء هڪ درجه بندي ۾ فنڪشنل طبقن ۾ تبديليون ڪري سگهو ٿا. انهي سان گڏ، هي طريقو طبقن جي وچ ۾ ملائڻ کي گهٽائڻ ۾ مدد ڪري ٿو. هن نموني کي استعمال ڪرڻ وقت بنيادي ضرورت آهي "هدايتن تي عمل ڪريو" - انهن مان ڪنهن کي به نظرانداز نه ڪريو! انهي جي پڇاڙيء ۾، اچو ته حالتون معلوم ڪريو جڏهن توهان کي ضرور استعمال ڪرڻ گهرجي پل جو نمونو:
  1. جيڪڏھن توھان کي وڌائڻ جي ضرورت آھي ادارن جو تعداد ٻن تصورن جي ميلاپ جي بنياد تي (مثال طور شڪلون ۽ رنگ).

  2. جيڪڏھن توھان ھڪڙي وڏي طبقي کي ورهائڻ چاھيو ٿا جيڪو ھڪڙي ذميواري جي اصول کي پورو نٿو ڪري ننڍن طبقن ۾ جيڪي تنگ ڪارڪردگي آھن.

  3. جيڪڏهن اهو ضروري آهي ته ڪجهه ادارن جي منطق ۾ تبديليون جڏهن پروگرام هلندي آهي.

  4. جيڪڏهن اهو ضروري آهي ته ڪلاس يا لائبريري جي ڪلائنٽ کان عمل کي لڪائڻ لاء.

جڏهن توهان هن نموني کي استعمال ڪندا آهيو، هميشه ياد رکو ته اهو توهان جي ڪوڊ ۾ اضافي ادارا شامل ڪري ٿو - اهو شايد ان کي ڪنهن پروجيڪٽ ۾ استعمال ڪرڻ جو مطلب نه آهي جتي صرف هڪ شڪل ۽ هڪ يا ٻه ممڪن رنگ آهن.

نموني جا فائدا ۽ نقصان

ٻين نمونن وانگر، هڪ پل جا فائدا ۽ نقصان ٻئي آهن. پل جي نموني جا فائدا:
  1. اهو ڪوڊ جي اسپيبلٽي کي بهتر بڻائي ٿو - توهان پروگرام جي ڪنهن ٻئي حصي ۾ ڪجهه ٽوڙڻ جي خوف کان سواء ڪارڪردگي شامل ڪري سگهو ٿا.
  2. اهو ذيلي طبقن جو تعداد گھٽائي ٿو جڏهن ادارن جو تعداد ٻي صورت ۾ ٻن تصورن جي ميلاپ تي ٻڌل هوندو (مثال طور، شڪلون ۽ رنگ).
  3. اهو ممڪن بنائي ٿو ته الڳ الڳ ڪم ڪرڻ لاءِ ٻن الڳ الڳ سرشتن تي - Abstraction and Implementation. ٻه مختلف ڊولپرز هڪ ٻئي جي ڪوڊ جي تفصيلن ۾ شامل ٿيڻ کان سواءِ تبديليون آڻي سگهن ٿا.
  4. اهو طبقن جي وچ ۾ جوڙيندڙ کي گھٽائي ٿو - واحد جڳهه جتي ٻه طبقن کي گڏ ڪيو ويو آهي پل (يعني فيلڊ Color color).
پل جي نموني جا نقصان:
  1. مخصوص صورتحال ۽ منصوبي جي مجموعي ڍانچي تي مدار رکندي، اهو پروگرام جي ڪارڪردگي کي منفي طور تي متاثر ڪري سگهي ٿو (مثال طور، جيڪڏهن توهان کي وڌيڪ شيون شروع ڪرڻ جي ضرورت آهي).
  2. ٻن طبقن جي وچ ۾ سوئچ ڪرڻ جي ضرورت جي ڪري اهو ڪوڊ گهٽ پڙهڻ لائق بڻائي ٿو.

حڪمت عملي جي نموني کان فرق

پل جو نمونو اڪثر ڪري هڪ ٻئي ڊيزائن جي نموني سان پريشان آهي - حڪمت عملي. اهي ٻئي ڪمپوزيشن استعمال ڪندا آهن (جيتوڻيڪ اسان انگن ۽ رنگن سان مثال ۾ مجموعو استعمال ڪيو آهي، برج جو نمونو پڻ استعمال ڪري سگهي ٿو مرکب)، ڪم کي ٻين شين جي نمائندگي ڪرڻ. پر انهن جي وچ ۾ فرق آهي، ۽ اهو تمام وڏو آهي. حڪمت عملي جو نمونو هڪ رويي جو نمونو آهي: اهو مڪمل طور تي مختلف مسئلن کي حل ڪري ٿو. حڪمت عملي الورورٿم کي مٽائڻ جي اجازت ڏئي ٿي، جڏهن ته پل مختلف عملن جي وچ ۾ چونڊڻ لاء عملن کان هڪ تجريد کي الڳ ڪري ٿو. ٻين لفظن ۾، هڪ حڪمت عملي جي برعڪس، هڪ پل لاڳو ٿئي ٿو پوري ادارن يا عمدي جوڙجڪ تي. پل جو نمونو ڊولپر جي هٿيارن ۾ سٺو هٿيار ٿي سگهي ٿو. بنيادي شيء اها آهي ته انهن حالتن کي سڃاڻڻ جتي اهو استعمال ڪرڻ جي قابل آهي ۽ سڃاڻي ٿو جڏهن ڪجهه ٻيو نمونو مناسب آهي. جيڪڏهن توهان ٻين نمونن سان واقف نه آهيو، هيٺ ڏنل مضمون پڙهو:
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION