(আমি ক্লিন কোড পড়িনি এবং খুব বেশি জাভা জানি না))
নেমস্পেসে স্পষ্টভাবে সংজ্ঞায়িত দায়িত্ব সহ অনেক ক্ষুদ্র সত্তা তৈরির ধারণাটি প্রয়োগ করা কি বোধগম্য?
হ্যাঁ, এটি যেমন একাধিক ক্লাস এবং একাধিক ফাংশনগুলিতে রিফ্যাক্টরিং করে।
সম্পর্কিত ক্লাসের একটি ছোট গ্রুপকে সর্বদা একটি নেমস্পেসে আবৃত করা উচিত?
আসলে উত্তর না দিয়ে: হ্যাঁ, আপনার কমপক্ষে একটি শীর্ষ-স্তরের নেমস্পেস ব্যবহার করা উচিত। এটি প্রকল্প, সংস্থা বা আপনি যা পছন্দ করেন তার উপর ভিত্তি করে তৈরি হতে পারে তবে কয়েকটি বিশ্বব্যাপী নাম ব্যবহার করা নামের দ্বন্দ্ব হ্রাস করবে। এর অধীনে থাকা সমস্ত কিছুর গোষ্ঠীকরণের একক নেমস্পেস কেবল একটি বৈশ্বিক নাম পরিচয় করে। (বহিরাগত "সি" ফাংশন ব্যতীত, তবে এটি সি আন্তঃআযোগিতার কারণে এবং কেবলমাত্র অন্যান্য বহিরাগত "সি" ফাংশনকে প্রভাবিত করে))
সম্পর্কিত ক্লাসের একটি ছোট গ্রুপ তাদের জন্য উত্সর্গীকৃত একটি নেমস্পেসে মোড়ানো উচিত? সম্ভবত। বিশেষত যদি আপনি এই ক্লাসগুলির একটি সাধারণ উপসর্গ - ফ্রেববারথিং, ফ্রোবারথ্যাং, ফ্রোবারডুহিকি - ব্যবহার করে নিজেকে খুঁজে পান তবে আপনার একটি নাম স্থান - ফ্রোবার :: থিং ইত্যাদি বিবেচনা করা উচিত। যদি এগুলি কোনও বৃহত প্রকল্পের অংশ হয় তবে এটি আপনার রুট নেমস্পেস বা অন্য কোনও নেমস্পেসের অধীনে থাকবে।
প্রচুর ক্ষুদ্র ক্লাস থাকার জটিলতা পরিচালনা করার উপায় কি এইরকম, বা প্রচুর নেমস্পেস পরিচালনা করার ব্যয়টি প্রতিরোধমূলক হতে পারে?
উপসর্গযুক্ত নামগুলির উপরের উদাহরণটি গ্রহণ করা, ফ্রোবার্বার পরিচালনা করা কঠিন নয়: ফ্রববারথিংয়ের চেয়ে বেশি জিনিস। এটি কিছু সরঞ্জাম যেমন ডকুমেন্টেশন এবং কোড সমাপ্তির মাধ্যমে আরও সহজ হতে পারে। এডিএলের সাথে পার্থক্য রয়েছে, তবে এটি আপনার পক্ষে কাজ করতে পারে: সম্পর্কিত নেমস্পেসে খুব কম নামই এডিএলকে বের করে আনা সহজ করে তোলে এবং আপনি নির্দিষ্ট নামগুলিকে একটি নাম বা অন্য কোনও জায়গায় ইনজেক্ট করার জন্য ডিক্লারেশন ব্যবহার করে রাখতে পারেন।
নেমস্পেসের উপাধি আপনাকে নির্দিষ্ট প্রসঙ্গে দীর্ঘ নামের জায়গার জন্য একটি সংক্ষিপ্ত নাম ব্যবহার করতে দেয়, যা আবার সহজ ব্যবহারের অনুমতি দেয়:
void f() {
namespace CWVLN = Company_with_very_long_name; // Example from the standard.
// In this scope, use CWVLN::name instead of Company_with_very_long_name::name.
namespace fs = boost::filesystem; // Commonly used.
}
বুস্টকে বিবেচনা করুন, যার একক রুট নেমস্পেস, বুস্ট এবং তারপরে অনেকগুলি উপ-স্পেস - বুস্ট :: এশিয়া, বুস্ট :: আইও, বুস্ট :: ফাইল সিস্টেম, বুস্ট :: টিপলস ইত্যাদি - বিভিন্ন লাইব্রেরির জন্য বিবেচনা করুন। কিছু নাম রুট নেমস্পেসে "প্রচারিত" হয়:
সমস্ত সংজ্ঞা নেমস্পেস :: বুস্ট :: টিপলসগুলিতে, তবে সর্বাধিক সাধারণ নামগুলি ঘোষণার সাহায্যে নামস্পেস :: বুস্টে তোলা হয়। এই নামগুলি: টিপল, মেক_টুপল, টাই এবং পান। আরও, রেফ এবং ক্রেফ সরাসরি :: বুস্ট নেমস্পেসের অধীনে সংজ্ঞায়িত করা হয়।
"রিয়েল" মডিউলগুলির সাথে ভাষাগুলির মধ্যে সবচেয়ে বড় পার্থক্য হ'ল চাটুকার কাঠামো ব্যবহার করা কতটা সাধারণ mostly