আমি ইদানীং নিজেকে প্রায়শই কিছু করতে দেখেছি টাইপডিফগুলি শ্রেণীর অভ্যন্তরে কোনও নির্দিষ্ট শ্রেণীর সাথে সম্পর্কিত বলে ঘোষণা করা
class Lorem
{
typedef boost::shared_ptr<Lorem> ptr;
typedef std::vector<Lorem::ptr> vector;
//
// ...
//
};
এই ধরণেরগুলি তখন কোডের অন্যত্র ব্যবহৃত হয়:
Lorem::vector lorems;
Lorem::ptr lorem( new Lorem() );
lorems.push_back( lorem );
কারণগুলি আমি এটি পছন্দ করি:
- এটা তোলে, গোলমাল বর্গ টেমপ্লেট চালু হ্রাস
std::vector<Lorem>
হয়েLorem::vector
, ইত্যাদি - এটি অভিপ্রায় হিসাবে একটি বিবৃতি হিসাবে কাজ করে - উপরের উদাহরণে, লরেম ক্লাসটি
boost::shared_ptr
একটি ভেক্টরের মাধ্যমে গণনা করা এবং সঞ্চিত রেফারেন্স হিসাবে বিবেচিত । - এটি বাস্তবায়নের পরিবর্তনের অনুমতি দেয় - অর্থাত্ যদি
boost::intrusive_ptr
পরবর্তী পর্যায়ে যদি লোরেমকে গোপনীয়ভাবে রেফারেন্স গণনা করা হয় (মাধ্যমে ) করা হয় তবে কোডটিতে এটির সর্বনিম্ন প্রভাব পড়তে পারে। - আমি মনে করি এটি 'সুন্দর' দেখাচ্ছে এবং এটি পড়ার পক্ষে যুক্তিযুক্তভাবে সহজ।
আমার পছন্দ না হওয়ার কারণগুলি:
- কখনও কখনও নির্ভরতা নিয়ে সমস্যা থাকে - আপনি যদি এম্বেড করতে চান, বলুন,
Lorem::vector
অন্য শ্রেণীর মধ্যে একটি তবে কেবল লোরেমকে ঘোষণা করতে (বা তার শিরোনামের ফাইলে নির্ভরতা প্রবর্তনের বিরোধিতা হিসাবে) প্রয়োজন হবে তবে আপনাকে শেষ পর্যন্ত ব্যবহার করতে হবে সুস্পষ্ট ধরণের (যেমনboost::shared_ptr<Lorem>
তুলনায় বরংLorem::ptr
) যা কিছুটা বেমানান। - এটি খুব সাধারণ নাও হতে পারে, এবং তাই বোঝা শক্ত?
আমি আমার কোডিং শৈলীর সাথে উদ্দেশ্যমূলক হওয়ার চেষ্টা করি, সুতরাং এটির বিষয়ে অন্য কিছু মতামত পাওয়া ভাল হবে যাতে আমি আমার চিন্তাভাবনাটি কিছুটা ছড়িয়ে দিতে পারি।