কনস্ট্যান্টস ক্লাস তৈরির জন্য সেরা অনুশীলনের পরামর্শ দিন


25

কনস্ট্যান্ট ক্লাস ঘোষণার বিষয়ে আমার দলের সদস্যদের মধ্যে বিতর্ক রয়েছে। আমরা ধ্রুবক ভেরিয়েবলগুলি নীচের মতো পৃথক শ্রেণিতে স্থানান্তরিত করছি।

public class Constants
{
      public const string StateId = "ST";
      public const string CountryId = "CI";
}

আমার দলের কয়েকজন সদস্য পরামর্শ দিয়েছিলেন যে আমরা ওভাররাইডিং বিকল্পটি এড়াতে ক্লাসটিকে সিল হিসাবে ঘোষণা করি এবং কয়েকজন পরামর্শ দিচ্ছেন যে কনস্ট্যান্ট শ্রেণির উদাহরণ সৃষ্টি এড়াতে আমরা এটিকে স্থির হিসাবে চিহ্নিত করব।
তবে, আমি এটি একটি স্ট্যাটিক কনস্ট্রাক্টরের সাথে সিলযুক্ত হিসাবে পছন্দ করি, যেহেতু এটি আমাদের ভবিষ্যতে প্রয়োজনে কেবল পঠনযোগ্য কেবল পরিবর্তনশীল সূচনা করতে সহায়তা করবে। আমাদের এ সম্পর্কে কিছু পরামর্শ দিন।


আপনি যেদিকেই যান না কেন, একটি বিষয় বিবেচনা করে মনে করা যেতে পারে যে অবজেক্টস এবং "গ্লোবাল" টাইপ শ্রেণীর মধ্যে নির্ভরতা এড়াতে ধ্রুবক শ্রেণীর চেয়ে সিস্টেমে ইন্টারফেস ব্যবহার করা উচিত ???
dreza

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


2
আমি আপনার প্রশ্ন পাই না। যদি কোনও শ্রেণীর কোনও উদাহরণ সদস্য না থাকে তবে আপনি এটি চিহ্নিত করতে পারেন static। এটি একটি স্থির নির্মাতার উপস্থিতি বা অনুপস্থিতির জন্য সম্পূর্ণরূপে অর্থেগোনাল।
কোডসইনচাউস

1
আপনার ধ্রুবকগুলি আসলে গাণিতিক অর্থে ধ্রুবক, বা এটি কনফিগারেশনের একটি রূপ?
কোডসইনচাউস

উত্তর:


31

আপনার প্রশ্নটি কী তা সম্পূর্ণরূপে পরিষ্কার নয় তবে মানগুলি যদি সত্যই স্থির থাকে তবে এর সহজ বিকল্পটিতে আমি কোনও সমস্যা দেখছি না:

    public static class LocationConstants
    {
        public const string StateId = "ST";
        public const string CountryId = "CI";
    }

staticশ্রেণীর ঘোষণাপত্র ব্যবহার করে এই শ্রেণীর উদ্দেশ্যটির জন্য আপনার ইচ্ছার ইঙ্গিত দেয়।

মার্ক স্ট্রেভ এই স্ট্যাক ওভারফ্লো উত্তরে ধ্রুবকগুলির সাথে কয়েকটি সম্ভাব্য সমস্যা বর্ণনা করে । আপনার কোডবেজে এগুলি সমস্যা কিনা তা কেবল আপনিই জানতে পারবেন, তবে মানগুলি যদি কখনও পরিবর্তিত হতে পারে তবে public static readonlyপরিবর্তে ব্যবহার করুন const, অন্যথায় মানগুলি পরিবর্তিত হলে ধ্রুবকগুলিকে উল্লেখ করে যে কোনও কোড পুনরায় তৈরি করতে হবে।


1
কনস্টেট ভেরিয়েবলগুলি ব্যবহার করে যে ক্যাভেটস আপনি খুঁজে পেতে পারেন তার মধ্যে একটি এখানে পরিষ্কারভাবে ব্যাখ্যা করা হয়েছে । যেহেতু কোডবেসগুলি বৃদ্ধি পেতে এবং আরও জটিল হয়ে ওঠে, তাই এটি ব্যবহার করা এড়ানো ভাল const, আমি public static readonlyধ্রুবকগুলির জন্য ভেরিয়েবলগুলি ব্যবহার করতে পছন্দ করি ।
joanlofe
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.