একচেটিয়া হ'ল শয়তান এবং অ-পঠনযোগ্য / পরিবর্তনযোগ্য স্থিতিযুক্ত একক 'হ'ল' আসল 'সমস্যা ...
সিজনলেটগুলি পড়ার পরে প্যাথলজিকাল লায়ারগুলি জেসনের উত্তরে প্রস্তাবিত হিসাবে আমি এই ছোট্ট জোয়ারটি জুড়ে এসেছি যা সিঙ্গলেটগুলি প্রায়শই কীভাবে অপব্যবহার হয় তার সেরা উপস্থাপিত উদাহরণ সরবরাহ করে ।
গ্লোবাল খারাপ কারণ:
- ক। এটি নেমস্পেস দ্বন্দ্ব সৃষ্টি করে
- খ। এটি অনিয়ন্ত্রিত ফ্যাশনে রাজ্যকে প্রকাশ করে
যখন সিঙ্গলেটনের কথা আসে
- ক। তাদের কল করার সুস্পষ্ট OO উপায়, বিরোধগুলি প্রতিরোধ করে, তাই বিন্দু এ। ইস্যু নয়
- খ। রাজ্যবিহীন সিলেটলেটগুলি (কারখানার মতো) কোনও সমস্যা নয়। রাষ্ট্র সহ সিঙ্গেলনগুলি আবার দুটি বিভাগে পড়তে পারে, সেগুলি অপরিবর্তনীয় বা একবার লিখুন এবং অনেকগুলি (কনফিগার / সম্পত্তি ফাইল) পড়তে পারেন। এগুলি খারাপ নয়। পরিবর্তনীয় একক সিলেটলেটগুলি, যা প্রকারের রেফারেন্স হোল্ডারগুলি সেগুলিই আপনি বলছেন।
শেষ বিবৃতিতে তিনি ব্লগের 'সিলেটলেটস মিথ্যাবাদী' ধারণাটি উল্লেখ করছেন।
এটি একচেটিয়া ক্ষেত্রে কীভাবে প্রযোজ্য?
একচেটিয়া খেলা শুরু করতে প্রথমে:
- আমরা নিয়মগুলি প্রথমে প্রতিষ্ঠিত করি যাতে প্রত্যেকে একই পৃষ্ঠায় থাকে
- গেমের শুরুতে প্রত্যেককে সমান সূচনা দেওয়া হয়
- বিভ্রান্তি এড়াতে নিয়মের একটি সেট উপস্থাপন করা হয়েছে
- নিয়মগুলি পুরো গেম জুড়ে পরিবর্তন করার অনুমতি নেই
এখন, সত্যিকারের নয় এমন কারও জন্য একচেটিয়া খেলেনি তাদের পক্ষে এই মানগুলি সর্বোত্তম আদর্শ। একচেটিয়া পরাজয় গিলে ফেলা শক্ত কারণ একচেটিয়া অর্থ সম্পর্কে, আপনি যদি হেরে যান তবে আপনাকে খুব কষ্টের সাথে বাকী খেলোয়াড়দের খেলা শেষ করতে হবে এবং ক্ষয়ক্ষতি সাধারণত দ্রুত এবং ক্রাশ হয়। সুতরাং, নিয়মগুলি সাধারণত অন্য সময়ে ব্যয় করে কিছু খেলোয়াড়ের স্বার্থের জন্য কোনও পর্যায়ে মোচড় দেয়।
সুতরাং আপনি বন্ধু বব, জো এবং এডের সাথে একচেটিয়া খেলছেন। আপনি দ্রুত আপনার সাম্রাজ্য তৈরি করছেন এবং বাজারের শেয়ারকে তাত্পর্যপূর্ণ হারে গ্রাস করছেন। আপনার বিরোধীরা দুর্বল হয়ে পড়েছে এবং আপনি রক্ত (রূপকভাবে) গন্ধ পেতে শুরু করেন। আপনার বন্ধু বব তার সমস্ত অর্থ যথাসম্ভব কম-মূল্যের সম্পত্তি গ্রিডলকিংয়ে রেখেছিলেন তবে তিনি যেভাবে প্রত্যাশা করেছিলেন বিনিয়োগের মতো উচ্চতর রিটার্ন পাচ্ছেন না। দুর্ভাগ্যজনক স্ট্রোক হিসাবে বব আপনার বোর্ডওয়াকের উপরে উঠেছে এবং গেমটি থেকে বহিষ্কার।
এখন গেমটি বন্ধুত্বপূর্ণ ডাইস-রোলিং থেকে গুরুতর ব্যবসায়ের দিকে চলে। ববকে ব্যর্থতার উদাহরণ হিসাবে তৈরি করা হয়েছে এবং জো এবং এড 'ওই লোকটির' মতো শেষ করতে চান না। সুতরাং, শীর্ষস্থানীয় খেলোয়াড় হয়ে আপনি হঠাৎ করেই শত্রু হয়ে যান। জো এবং এড টেবিলের নীচে ব্যবসার অনুশীলন শুরু করুন, পিছনে পিছনে অর্থের ইনজেকশনগুলি, অবমূল্যায়িত বাড়ির অদলবদল এবং সাধারণত খেলোয়াড় হিসাবে আপনাকে দুর্বল করার জন্য যে কোনও কিছু শীর্ষে না উঠা পর্যন্ত।
তারপরে, তাদের মধ্যে একটির জয়ের পরিবর্তে প্রক্রিয়াটি শুরু হয়। হঠাৎ করেই, একটি সীমাবদ্ধ নিয়মগুলি একটি চলন্ত লক্ষ্য হয়ে যায় এবং গেমটি এমন সামাজিক যোগাযোগের ধরণকে অধঃপতিত করে যা বেঁচে থাকার পরে প্রতিটি উচ্চ-রেটেড রিয়েলিটি টিভি অনুষ্ঠানের ভিত্তি তৈরি করে। কেন, কারণ নিয়মগুলি পরিবর্তিত হচ্ছে এবং কীভাবে / কেন / তাদের কীভাবে প্রতিনিধিত্ব করার কথা রয়েছে সে সম্পর্কে কোনও usক্যমত্য নেই এবং আরও গুরুত্বপূর্ণ, সিদ্ধান্ত নেওয়ার জন্য কেউ নেই। গেমের প্রতিটি খেলোয়াড় তার নিজের নিয়মগুলি তৈরি করে চলেছে এবং বিশৃঙ্খলা জাগ্রত হয় যতক্ষণ না দুজন খেলোয়াড় খুব বেশি ক্লান্ত না হয়ে চরেড ধরে রাখে এবং আস্তে আস্তে হাল ছেড়ে দেয় না।
সুতরাং, যদি কোনও গেমের নিয়ম পুস্তিকা সঠিকভাবে একটি সিঙ্গলটনের প্রতিনিধিত্ব করে তবে একচেটিয়া রুলবুক অপব্যবহারের উদাহরণ হতে পারে।
এটি কীভাবে প্রোগ্রামিংয়ে প্রযোজ্য?
সুস্পষ্ট থ্রেড-সুরক্ষা এবং সিঙ্ক্রোনাইজেশন ইস্যুগুলি বাদ দিয়ে যা পরিবর্তনীয় সিঙ্গলেটস উপস্থিত করে ... আপনার কাছে যদি ডেটার একটি সেট থাকে তবে এটি একাধিক বিভিন্ন উত্স দ্বারা একযোগে পড়তে / ম্যানিপুলেট করতে সক্ষম এবং অ্যাপ্লিকেশন কার্যকর হওয়ার সময়কালে বিদ্যমান, পিছনে পদক্ষেপ নেওয়া এবং "আমি কি এখানে সঠিক ধরণের ডেটা কাঠামো ব্যবহার করছি" জিজ্ঞাসা করার জন্য এটি সম্ভবত ভাল সময়।
ব্যক্তিগতভাবে, আমি একজন প্রোগ্রামার কোনও অ্যাপ্লিকেশনটির মধ্যে কোনও এককভাবে বাঁকানো ক্রস-থ্রেড ডাটাবেস স্টোর হিসাবে ব্যবহার করে একটি সিঙ্গলটনের অপব্যবহার দেখেছি। কোডটিতে সরাসরি কাজ করার পরে, আমি প্রমাণ করতে পারি যে এটি ধীরে ধীরে ছিল (এটি থ্রেড-নিরাপদ করার জন্য সমস্ত থ্রেড লকগুলির কারণে) এবং কাজ করার জন্য একটি দুঃস্বপ্ন (সিনক্রোনাইজেশন বাগগুলির অপ্রত্যাশিত / অন্তর্বর্তী প্রকৃতির কারণে), এবং 'উত্পাদন' শর্তে পরীক্ষা করা প্রায় অসম্ভব। অবশ্যই, কিছু কার্য সম্পাদন সংক্রান্ত সমস্যাগুলি কাটিয়ে ওঠার জন্য ভোটদান / সিগন্যালিং ব্যবহার করে একটি সিস্টেম তৈরি করা যেতে পারে তবে এটি পরীক্ষার মাধ্যমে সমস্যাগুলি সমাধান করতে পারে না এবং যখন 'সত্য' ডাটাবেস ইতিমধ্যে আরও কার্যকরতায় একই কার্যকারিতাটি সম্পাদন করতে পারে তখন কেন বিরক্ত হবে? / স্কেলেবল পদ্ধতিতে।
একটি সিঙ্গলটন কেবলমাত্র একটি বিকল্প যদি আপনার প্রয়োজন হয় সিঙ্গলটন যা সরবরাহ করে। একটি অবজেক্টের কেবল একটি পঠনযোগ্য পাঠ্য উদাহরণ। একই নিয়মের সাথে অবজেক্টের বৈশিষ্ট্য / সদস্যদেরও ক্যাসকেড করা উচিত।