পাম্প প্রাইমিং কি? কখনও কখনও একটি প্রাইমিং রিড বলা হয়


17

দিনের বেলা আমাকে এই অভিব্যক্তি এবং প্যাটার্নের উপায় শিখানো হয়েছিল। অবশ্যই, নামটি পুরানো পাম্পগুলির থেকে আসে যেগুলি জল পাম্প করার আগে তাদের জলে ভরাট করা দরকার, তবে কে যত্ন করে? আমরা এখানে কোড সম্পর্কে কথা বলছি।

কিছু সত্যিই ভাল উদাহরণ এবং প্যাটার্নটি কী অর্জন করে তার একটি ব্যাখ্যা স্বাগত হবে। আজকে এই নিদর্শনটিকে কীভাবে বিবেচনা করা হয়?

প্রাইমিং কখনও কখনও ত্রুটিযুক্ত লুপ কাজ করতে পারে তবে ডিআরওয়াইয়ের ব্যয়ে । সুতরাং এটি আরও ভাল ডিজাইনের পথে সংক্ষিপ্ত স্টপ হতে পারে। এটি কি একটি বিরোধী নিদর্শন হিসাবে বিবেচিত হয়? বিকল্প আছে?


1
আপনি একটি স্ট্যাকওভারফ্লো উত্তর এবং একটি বইতে "পাম্পের প্রাইমিং" শব্দটি পাবেন । এখানে পাওয়া "প্রাইমিং রিড" শব্দটি অনেকটা একই বলে মনে হচ্ছে।
candied_orange

উত্তর:


23

এই রূপকটি অবশ্যই অবশ্যই একটি whileলুপে প্রথম শর্তসাপেক্ষ চেক স্থাপনের অনুশীলনকে বোঝায় । আপনি যদি এটি না করেন তবে লুপটি কাজ করবে না। এটি একটি সুপ্রতিষ্ঠিত প্যাটার্ন এবং whileলুপটি আবিষ্কারের পরে এটি পরিবর্তন হয়নি changed একটি whileলুপে প্রাথমিক শর্ত নির্ধারণের জন্য প্রয়োজনীয়তাটি ত্রুটি নয়।

int i = 0; // prime the pump
while (i < 10)
{
    Console.Write("While statement ");
    Console.WriteLine(i);
    i++; // set condition again
}

প্রাইমারটি একটি পঠন বিবৃতি হতে পারে, বা যা সঠিকভাবে প্রাথমিক শর্তটি সেট করে। একটি পঠিত বিবৃতি ব্যবহার করে প্রাথমিক শর্ত নির্ধারণকে "প্রাইমিং রিড" বলা হয়।

string line;

using (StreamReader file = new StreamReader("c:\\test.txt"))
{
    line = file.ReadLine(); // Priming read.
    while(line != null)
    {
        Console.WriteLine (line);
        line = file.ReadLine(); // Subsequent reads.   
    }
}

সি # তে, দুটি Readline()কলকে শর্তাধীন একক বিবৃতিতে একত্রিত করা যেতে পারে:

while ((line = r.ReadLine()) != null)
{
    Console.WriteLine (line);
}

1
খুশী হলাম। কিছু সময় আছে যখন আপনি ঠিক তাদের মধ্যে পরীক্ষা টি দিয়ে A এবং B করার দরকার হয়। সাধারণ A T(B A)প্রাইমিং প্যাটার্নটি এটি করে তবে এটিকে সদৃশ করে A. এ সাধারণ প্যাটার্নের কোনও সাধারণ বিকল্প?
candied_orange

2
আমার উত্তরে কোডের শেষ বিটটি দেখুন।
রবার্ট হার্ভে

এটি একটি ক্লাসিক। আপনি কি কখনও বিরতি ব্যবহার করার পরামর্শ দিবেন?
candied_orange

যদি লুপ থেকে প্রারম্ভিক প্রস্থান করার বিরোধিতা করি না যদি এমনটি কোডটি সহজ করে। কখনও কখনও আপনি ঠিক করতে পারেন return
রবার্ট হার্ভে

1
একটি উদাহরণ কোনও পাঠ্য ফাইলের প্রতিটি লাইনে একটি স্ট্রিংয়ের প্রথম উপস্থিতির সন্ধান করবে। আপনার তখনও whileলুপের প্রয়োজন হবে , তবে আপনি কেবল পংক্ত লাইনে স্ট্রিংটি পেয়ে গেলে আপনি হয়ও breakবা পারেন return
রবার্ট হার্ভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.