স্থির পদ্ধতি বনাম স্কালার সহযোগী অবজেক্টের সুবিধা কী কী?


50

স্কালার কোনও স্ট্যাটিক- কীওয়ার্ড নেই, তবে পরিবর্তে সহকর্মী অবজেক্টগুলির মাধ্যমে অনুরূপ কার্যকারিতা রয়েছে। দৃশ্যের পিছনে সঙ্গী অবজেক্টগুলি এমন ক্লাসগুলিতে সংকলিত হয় যেখানে স্থির পদ্ধতি রয়েছে, সুতরাং এটি সমস্ত সিনট্যাকটিক চিনি। এই নকশা পছন্দ সুবিধা কি কি? অসুবিধেও? অন্যান্য ল্যাঙ্গুঞ্জগুলিতে কি একই ধরনের নির্মাণ রয়েছে?


এছাড়াও দেখুন
স্ট্যাকওভারফ্লো.

উত্তর:


49

এখানে কয়েকটি কারণ রয়েছে, যা আপনার নিজের পছন্দগুলির উপর নির্ভর করে আপনার জন্য কমবেশি বাধ্য হতে পারে:

  1. "সিনট্যাকটিক চিনি" হওয়ার জন্য কেবল এটিকে ছাড় করবেন না। আপনি যখন বলতে পারেন যে কোনও কিছু কেবল সিনট্যাকটিক চিনি, তবে এটি সমস্ত চিনির পরে যা আপনার জীবনকে মধুর করে দেয় - প্রোগ্রামার হিসাবে কেবল কফি বা চা পানকারী।

  2. সিলেটলেটস - প্রতিটি স্কেলা objectসহজাতভাবে একটি সিঙ্গলটন । জাভা বিশ্বে লোকেরা বিভিন্ন ধরণের বিভিন্ন উপায়ে সিঙ্গেলন প্রয়োগ করে এবং তাদের প্রয়োগে কিছু ভুল না করেই আপনি স্কালায় এর মতো সহজ ত্রুটি করতে পারবেন না। objectপরিবর্তে লেখা classএটিকে একটি একক করে তোলে এবং আপনার কাজ শেষ।

  3. স্থির পদ্ধতিতে অ্যাক্সেস: জাভাতে স্থির পদ্ধতিগুলি অবজেক্ট থেকে অ্যাক্সেস করা যায়। উদাহরণস্বরূপ, ধরুন আপনার কাছে Cএকটি স্ট্যাটিক পদ্ধতি fএবং cটাইপের একটি অবজেক্ট সহ একটি ক্লাস রয়েছে C। তারপরে আপনার কল করা উচিতC.f , তবে জাভা আপনাকে (একটি সতর্কতা সহ) ব্যবহার করার অনুমতি দেয় c.f, যা আপনি যখন স্কালার পটভূমি থেকে আসেন তখন সত্যিকার অর্থে কোনও অর্থ হয় না, কারণ বস্তুগুলির সত্যিকার অর্থে কোনও পদ্ধতি থাকে fনা।

  4. স্পষ্ট বিচ্ছেদ: জাভাতে আপনি একটি শ্রেণিতে স্থিতিশীল এবং অ-স্থিতিক বৈশিষ্ট্য এবং পদ্ধতিগুলি মিশ্রিত করতে পারেন। আপনি যদি শৃঙ্খলাবদ্ধ হয়ে কাজ করেন তবে এটি কোনও সমস্যা হয়ে উঠবে না, তবে আপনি (বা সেই বিষয়ে অন্য কেউ) যদি না করেন তবে আপনি স্থির এবং অ-স্থিতিশীল অংশগুলি ইন্টারলিভড দিয়ে শেষ করেন এবং দ্রুত নজরে বলা শক্ত is কি স্থির এবং কি না। স্কালায়, সঙ্গী অবজেক্টের অভ্যন্তরে অবস্থিত সমস্ত কিছুই সংশ্লিষ্ট শ্রেণীর রানটাইম অবজেক্টগুলির অংশ নয়, তবে স্থির প্রসঙ্গ থেকে উপলভ্য। তদ্বিপরীত, এটি যদি কোনও শ্রেণীর ভিতরে লেখা হয় তবে এটি শ্রেণীর উদাহরণগুলির জন্য উপলব্ধ, তবে কোনও স্থির প্রসঙ্গে নয়। এটি একবার আপনার ক্লাসে স্ট্যাটিক এবং অ-স্ট্যাটিক ইনিশিয়ালাইজার ব্লক যুক্ত করা শুরু করলে এটি জাভাতে বিশেষত বোঝা হয়ে ওঠে। এটি ডায়নামিক এক্সিকিউশন অর্ডারের ক্ষেত্রে বুঝতে খুব কঠিন হতে পারে।

  5. কম কোড: আপনার প্রতিটি বৈশিষ্ট্য বা পদ্ধতিতে স্ট্যাটিক শব্দ যুক্ত করার দরকার নেই object, সুতরাং কোডটি আরও সংক্ষিপ্ত করে রাখুন (সত্যই, প্রকৃতপক্ষে কোনও বিশিষ্ট সুবিধা নয়)।

অসুবিধাগুলি খুঁজে পাওয়া অনেক কঠিন। কেউ তর্ক করতে পারেন, স্থির এবং অ-স্থির অংশগুলি একত্রে হওয়া উচিত, তবে সহচর বস্তুর স্কাল ধারণা দ্বারা পৃথক করা হয়েছে। উদাহরণস্বরূপ, শ্রেণি চিত্রটি আশ্চর্যরূপে প্রদর্শিত হতে পারে তবে কোড এবং বিচ্ছিন্নতায় দুটি বৈশিষ্ট্য তৈরি করতে হবে যা কোন বৈশিষ্ট্যটি যায়।


1
আমি আরও পড়লাম, স্ট্যাটিকগুলি খাঁটি ওওপি সফ্টওয়্যারটির অন্তর্ভুক্ত নয়। যেমন, যখন আপনার স্ট্যাটিক আচরণের প্রয়োজন হয় তখন একটি নিজস্ব শ্রেণি ব্যবহার করুন এবং এর একটি (সিঙ্গলটন) অবজেক্ট তৈরি করুন, যা অন্য শ্রেণীর অবজেক্টগুলির (সম্ভাব্য) স্থির আচরণ পরিচালনা করে।
কে ..

1
"ক্লাসের পরিবর্তে অবজেক্ট রাইটিং এটিকে সিঙ্গলটন হিসাবে তৈরি করে এবং আপনি শেষ করেছেন" " আমি নিজে সিঙ্গলেটনের জন্য খুব বেশি যত্ন নিই না, তবে আমি স্বীকার করতে পেরেছি যে এই নির্দিষ্ট "সিনট্যাকটিক চিনি" এর প্রত্যক্ষতা একটি নির্দিষ্ট আকর্ষণ আছে।
এড হেস্টিংস

3
1 থেকে 5 পর্যন্ত পয়েন্টগুলির কোনওটির (এবং এমনকি এটি সমস্তগুলি একত্রে) প্রয়োগের জন্য রানটাইমে সত্যিকারের সহযোগী অবজেক্টের প্রয়োজন হয় না। এগুলির সবগুলিকে শূন্য রানটাইম প্রভাব সহ সহজেই খাঁটি সিনট্যাকটিক চিনি হিসাবে তৈরি করা যেতে পারে। আলেক্সি রোমানভের উত্তরে রানটাইম সহচর বস্তু থাকার একমাত্র আসল কারণ দেওয়া আছে।
mas.morozov

"অসুবিধাগুলি খুঁজে পাওয়া অনেক কঠিন" " কর্মক্ষমতা? কোনও অবজেক্ট পদ্ধতিতে অ্যাক্সেস ifnonnullকরা সহজভাবে তুলনা করে বাইটোকোড ইত্যাদি তৈরি করে invokeStatic
এডুয়ার্ডো পারেজা টোবস 16

33

আরও একটি সুবিধা হ'ল objectস্থির পদ্ধতির বিপরীতে ইন্টারফেস / বৈশিষ্ট্যগুলি প্রয়োগ করতে পারে।


8
আমি মনে করি স্থির পদ্ধতি সহ কোনও ক্লাসের সহকর্মী অবজেক্টের মধ্যে এটি প্রধান পার্থক্য। একটি সহযোগী অবজেক্টটি বহুকর্মী এবং এটি একটি ইন্টারফেস / বৈশিষ্ট্য প্রত্যাশা এমন পদ্ধতির পক্ষে যুক্তি হিসাবে চারপাশে যেতে পারে।
ডাস্ট্রো

4

সঙ্গী বস্তু হ'ল প্রথম স্থানটি অনুসন্ধানের জন্য অনুসন্ধান করা হয়, তারপরে, স্কালা প্রিডিফকে দেখায় এবং তারপরে সেই নির্দিষ্ট উত্স ফাইলে সুস্পষ্ট "আমদানি" বিবৃতিতে।

জাভা ভাষা বা পাঠাগারগুলি কোনও তুলনামূলক ব্যবস্থা সরবরাহ করে কিনা তা জানার জন্য আমি জাভা দেবের পক্ষে যথেষ্ট নই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.