JavaRush /جاوا بلاگ /Random-SD /پل جي ڊيزائن جو نمونو

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

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

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

برج جو نمونو هڪ ڍانچي ڊيزائن جو نمونو آهي. اهو آهي، ان جو بنيادي ڪم طبقن ۽ شين جي هڪ مڪمل ڍانچي ٺاهڻ آهي. برج هن مسئلي کي حل ڪري ٿو هڪ يا وڌيڪ طبقن کي الڳ الڳ 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 : RectangleBlackRectangleGreenRectangleRedColorBlackColorGreenColorRedColor
  • رنگ جاوا:

    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هڪ پل آهي جيڪو ٻن الڳ طبقن جي درجه بندي کي پاڻ ۾ ڳنڍي ٿو.

برج ڊيوائس: تجريد ۽ عمل درآمد ڇا آهي

اچو ته ڪلاس ڊاگرام تي هڪ نظر رکون جيڪو بيان ڪري ٿو برج جو نمونو: پل جي ڊيزائن جي نموني جو تعارف - 2هتي توهان ٻه آزاد جوڙجڪ ڏسي سگهو ٿا جيڪي هڪ ٻئي جي ڪارڪردگي کي متاثر ڪرڻ کان سواء تبديل ڪري سگھجن ٿيون. اسان جي صورت ۾ اهو آهي:
  • خلاصو - ڪلاس Shape؛
  • Refined Abstraction - ڪلاسز Triangle, Rectangle;
  • لاڳو ڪندڙ- انٽرفيس Color؛
  • ڪنڪريٽ لاڳو ڪندڙ - ڪلاس BlackColor، GreenColor۽ RedColor.
ڪلاس Shapeهڪ Abstraction جي نمائندگي ڪري ٿو - مختلف رنگن ۾ شڪلين جي رنگن کي ڪنٽرول ڪرڻ لاءِ هڪ ميکانيزم، جيڪو انٽرفيس تي عمل درآمد کي نمائندو ڪري ٿو 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