মিশিনস বনাম বৈশিষ্ট্য


উত্তর:


214
  1. মিক্সিনগুলিতে স্টেট থাকতে পারে, (চিরাচরিত) বৈশিষ্ট্যগুলি না।
  2. মিশিনগুলি "অন্তর্নিহিত সংঘাতের সমাধান" ব্যবহার করে, বৈশিষ্ট্যগুলি "স্পষ্টত বিরোধের সমাধান" ব্যবহার করে
  3. মিশিনগুলি লিনিয়ারীকরণের উপর নির্ভর করে, বৈশিষ্ট্যগুলি সমতল হয়।

বৈশিষ্ট্য সম্পর্কে বক্তৃতা

বিজ্ঞাপন 1. মিশ্রণগুলিতে আপনি উদাহরণ ভেরিয়েবল সংজ্ঞায়িত করতে পারেন। বৈশিষ্ট্যগুলি এটির অনুমতি দেয় না। রাজ্যটি অবশ্যই ক্লাস রচনা করে সরবরাহ করা উচিত (= বৈশিষ্ট্য ব্যবহার করে শ্রেণি)

বিজ্ঞাপন 2. নাম বিরোধ হতে পারে। দুটি সংশ্লেষ ( MAএবং MB) বা বৈশিষ্ট্য ( TAএবং TB) একই সংজ্ঞা দিয়ে পদ্ধতি নির্ধারণ করে foo():void

Mixin MA {
    foo():void {
        print 'hello'
    }
}

Mixin MB {
    foo():void {
        print 'bye'
    }
}

Trait TA {
    foo():void {
        print 'hello'
    }
}

Trait TB {
    foo():void {
        print 'bye'
    }
}

মিশ্রণগুলিতে রচনাশ্রেণীর দ্বন্দ্বগুলি C mixins MA, MB সুস্পষ্টভাবে সমাধান করা হয়।

Class C mixins MA, MB {
    bar():void {
        foo();
    }
}

এটি foo():voidথেকে কল হবেMA

অন্যদিকে ট্রেইটস ব্যবহার করার সময়, রচনাশ্রেণীকে দ্বন্দ্বগুলি সমাধান করতে হবে।

Class C mixins TA, TB {
    bar():void {
        foo();
    }
}

এই কোডটি দ্বন্দ্ব উত্থাপন করবে (দুটি সংজ্ঞা foo():void)।

বিজ্ঞাপন 3. কোনও পদ্ধতির শব্দার্থবিজ্ঞানের উপর নির্ভর করে না এটির বৈশিষ্ট্য বা বৈশিষ্ট্য ব্যবহার করে এমন শ্রেণিতে সংজ্ঞায়িত করা হয়েছে কিনা।

অন্য কথায়, ক্লাসটি যেভাবেই বৈশিষ্ট্যগুলি নিয়ে গঠিত বা Traits কোডটি "অনুলিপি - পেস্ট" ক্লাসে অন্তর্ভুক্ত তা বিবেচ্য নয়।


5
আমি জানি এটি এক বছরের অতীত তারিখ, তবে ভবিষ্যতের পাঠকদের জন্য, রুবিতে এটি পদ্ধতিটি সর্বশেষ মডিউলটি মিশ্রিত করা হত, সুতরাং এটি foo () ফর্ম এমবি কল করবে
rik.vanmechelen

4
স্কালার বৈশিষ্ট্যের ক্ষেত্রে ক্ষেত্র থাকতে পারে, এটি বোঝায় যে তারা "traditionalতিহ্যবাহী" বৈশিষ্ট্য নয়?
সার্জিও

4
হ্যাঁ, এগুলি "traditionalতিহ্যবাহী" নয়, তাদের "স্টেটফুল" বৈশিষ্ট্য বলা হয়।
রাষ্ট্রীয় পূর্ণ

7
টেন্টিটিভ -১; 'বৈশিষ্ট্য' এবং 'মিক্সিন' শব্দটি বন্যটিতে যেভাবে ব্যবহৃত হয় তা অত্যন্ত বেমানান এবং এখানে পয়েন্টগুলির মধ্যে কমপক্ষে একটি বিষয় বেশিরভাগ ক্ষেত্রেই ভুল। পিএইচপি এবং উইকিপিডিয়া (এবং @ সার্জিও অনুসারে, স্কালার) বৈশিষ্ট্য রাষ্ট্রহীন হওয়ার বিষয়ে আপনার সাথে একমত নন। আমি এই উত্তরটি দরকারী বলে মনে করি না কারণ এটি খালি দাবি দিয়ে তৈরি করা হয়েছে, এবং এটি আমার কাছে অস্পষ্ট যে আপনি ব্যক্তিগতভাবে এই শব্দগুলি কীভাবে ব্যবহার করেন তার চেয়ে বেশি এটি কিছুই নয়। অন্যথায় বিশ্বাসী হওয়ার জন্য, আমাকে আপনার দাবির ব্যাক আপ করার জন্য কীভাবে পদগুলি বাস্তব বিশ্বে ব্যবহৃত হয় (উদাহরণস্বরূপ বাস্তব প্রোগ্রামিং ভাষাগুলিতে) এর অনেক উদাহরণ দেখতে হবে।
মার্ক আমেরিকা

3
@ আইকুটক্লিক লিনিয়ারাইজেশন -> "সংকলক অস্পষ্টতা ছাড়াই কি সুপার তা প্রশ্নটির সমাধান করে।" ( আইবিএম.com / ডেভেলপ ওয়ার্কস / লাইবারি / জ-jn8 )
বেন

9

এই পৃষ্ঠাগুলি ডি প্রোগ্রামিং ভাষার পার্থক্য ব্যাখ্যা করে।

http://dlang.org/mixin.html

http://dlang.org/traits.html

এই প্রসঙ্গে মিক্সিনগুলি ফ্লাইয়ে কোড উত্পন্ন হয় এবং সংকলনের সময় কোডটিতে সেই বিন্দুতে .োকানো হয়। সাধারণ ডিএসএলগুলির জন্য বেশ সুবিধাজনক।

বৈশিষ্ট্যগুলি বাইরের মানগুলি সংকলন করে (বাহ্যিক উত্স থেকে উত্পন্ন কোডের চেয়ে)। পার্থক্যটি সূক্ষ্ম। মিকিনস যুক্তি যুক্ত করে, বৈশিষ্ট্যগুলি সংকলন-সময় ধরণের তথ্যের মতো ডেটা যুক্ত করে।

রুবির সম্পর্কে বেশি কিছু জানেন না তবে আশা করি এটি কিছুটা সাহায্য করবে।


41
ডি কম্পিউটারে মিকিনস এবং বৈশিষ্ট্যগুলি সাধারণত কম্পিউটার বিজ্ঞানের শর্তাদির অর্থ থেকে সম্পূর্ণ পৃথক। ডি তে, উভয়ই স্বয়ংক্রিয় কোড উত্পন্নকরণের জন্য প্রিপ্রোসেসর আদিম। অন্যান্য ভাষায়, তারা উত্তরাধিকারের প্রক্রিয়া। ডি-তে নামকরণের সিদ্ধান্তটি দুর্ভাগ্যজনক।
টাইলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.