Solidity এর ইনহেরিটেন্স এবং প্রোপার্টিজ

Solidity Syntax এবং বেসিক ধারণা (Basic Syntax and Concepts) - সলিডিটি (Solidity) - Computer Programming

267

Solidity তে ইনহেরিটেন্স (inheritance) এবং প্রোপার্টিজ (properties) অতি গুরুত্বপূর্ণ কনসেপ্ট যা স্মার্ট কন্ট্রাক্টে কোড পুনঃব্যবহার এবং কার্যকারিতা বৃদ্ধি করতে সহায়ক। Solidity তে ইনহেরিটেন্স ব্যবহার করে একটি কন্ট্রাক্ট থেকে অন্য কন্ট্রাক্টে বৈশিষ্ট্য বা ফাংশন ধার করা যায়। এটি অ্যাবস্ট্রাক্ট কন্ট্রাক্ট তৈরি করতে, লজিক ভাগ করতে এবং কোড পুনঃব্যবহারযোগ্য করতে সাহায্য করে।

ইনহেরিটেন্স (Inheritance)

Solidity তে ইনহেরিটেন্স ব্যবহার করে আপনি একটি কন্ট্রাক্টের বৈশিষ্ট্য এবং ফাংশন অন্য কন্ট্রাক্টে উত্তরাধিকার সূত্রে গ্রহণ করতে পারেন। এটি আপনাকে একটি কন্ট্রাক্টের কোড পুনরায় না লিখে, পূর্বের কন্ট্রাক্টের ফাংশন এবং প্রোপার্টিজ ব্যবহার করতে সহায়তা করে।

Solidity তে ইনহেরিটেন্স ব্যবহার করার জন্য syntax:
// প্যারেন্ট কন্ট্রাক্ট
pragma solidity ^0.8.0;

contract Parent {
    uint public value;

    constructor(uint _value) {
        value = _value;
    }

    function setValue(uint _value) public {
        value = _value;
    }
}

// চাইল্ড কন্ট্রাক্ট (Parent কন্ট্রাক্ট ইনহেরিট করে)
contract Child is Parent {
    string public name;

    constructor(uint _value, string memory _name) Parent(_value) {
        name = _name;
    }

    function getName() public view returns (string memory) {
        return name;
    }
}

ব্যাখ্যা:

  • Parent কন্ট্রাক্ট একটি পাবলিক ভেরিয়েবল value এবং একটি ফাংশন setValue ধারণ করে।
  • Child কন্ট্রাক্ট Parent কন্ট্রাক্ট থেকে ইনহেরিট করা হয়েছে। এর মানে হলো, Child কন্ট্রাক্ট Parent কন্ট্রাক্টের সমস্ত প্রোপার্টি এবং ফাংশন পেয়েছে।
  • Child কন্ট্রাক্টের কনস্ট্রাক্টর Parent কন্ট্রাক্টের কনস্ট্রাক্টরকেও কল করেছে।

ইনহেরিটেন্সের ধরণ

Solidity তে ইনহেরিটেন্সের বিভিন্ন ধরণ থাকতে পারে:

  • সিঙ্গেল ইনহেরিটেন্স: একটি কন্ট্রাক্ট এককভাবে অন্য একটি কন্ট্রাক্ট থেকে ইনহেরিট করে।
  • মাল্টিপল ইনহেরিটেন্স: একাধিক কন্ট্রাক্ট থেকে ইনহেরিট করা যায়। Solidity তে মাল্টিপল ইনহেরিটেন্সের মাধ্যমে একাধিক কন্ট্রাক্টের প্রোপার্টি এবং ফাংশন একসাথে ব্যবহার করা সম্ভব হয়।
মাল্টিপল ইনহেরিটেন্স উদাহরণ:
pragma solidity ^0.8.0;

contract A {
    function funcA() public pure returns (string memory) {
        return "Function A";
    }
}

contract B {
    function funcB() public pure returns (string memory) {
        return "Function B";
    }
}

contract C is A, B {
    function funcC() public pure returns (string memory) {
        return "Function C";
    }
}

এখানে C কন্ট্রাক্ট A এবং B কন্ট্রাক্ট থেকে ইনহেরিট করছে এবং C কন্ট্রাক্টে funcA, funcB এবং funcC ফাংশনগুলো ব্যবহার করা হচ্ছে।

প্রোপার্টিজ (Properties)

Solidity তে প্রোপার্টিজ হল ভেরিয়েবল বা ডেটা যা একটি কন্ট্রাক্টের অংশ হিসেবে থাকে। এই প্রোপার্টিগুলি প্যারেন্ট কন্ট্রাক্ট থেকে ইনহেরিট করা যেতে পারে। একটি কন্ট্রাক্টের প্রোপার্টি হচ্ছে সেই সমস্ত ভেরিয়েবল যা সিস্টেমে সংরক্ষিত থাকে এবং স্মার্ট কন্ট্রাক্টের কার্যকারিতা নিয়ন্ত্রণ করে।

Solidity তে প্রোপার্টিজ সাধারণত ৩ ধরনের visibility রাখে:

  • public: এটি এমন প্রোপার্টি যা অন্য সব কন্ট্রাক্ট এবং ব্যবহারকারীদের জন্য দৃশ্যমান থাকে। Solidity এর জন্য এই visibility অ্যাক্সেসর ফাংশন তৈরি করে।
  • internal: এটি এমন প্রোপার্টি যা কেবল বর্তমান কন্ট্রাক্ট এবং এর ইনহেরিটেড কন্ট্রাক্ট থেকে অ্যাক্সেস করা যায়।
  • private: এটি এমন প্রোপার্টি যা কেবলমাত্র বর্তমান কন্ট্রাক্টের মধ্যে অ্যাক্সেস করা যায়, ইনহেরিটেড কন্ট্রাক্টের মধ্যে নয়।
প্রোপার্টি ব্যবহার উদাহরণ:
pragma solidity ^0.8.0;

contract MyContract {
    uint public value;  // public প্রোপার্টি

    constructor(uint _value) {
        value = _value;
    }

    function setValue(uint _value) public {
        value = _value;
    }
}

এখানে value একটি public প্রোপার্টি যা কন্ট্রাক্টের বাইরে থেকে এক্সেস করা যেতে পারে।

প্রোপার্টির সাথে ইনহেরিটেন্স ব্যবহার:

pragma solidity ^0.8.0;

contract Parent {
    uint public value;

    constructor(uint _value) {
        value = _value;
    }
}

contract Child is Parent {
    constructor(uint _value) Parent(_value) {}

    function getValue() public view returns (uint) {
        return value;
    }
}

এখানে Child কন্ট্রাক্ট Parent কন্ট্রাক্টের value প্রোপার্টি ইনহেরিট করেছে এবং getValue() ফাংশনের মাধ্যমে এটি অ্যাক্সেস করছে।


সারাংশ

Solidity তে ইনহেরিটেন্স এবং প্রোপার্টিজের ব্যবহার স্মার্ট কন্ট্রাক্টের কার্যকারিতা উন্নত করতে এবং কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করতে সহায়ক। ইনহেরিটেন্স কন্ট্রাক্টের মধ্যে কোড শেয়ারিং এবং লজিক ভাগ করে, যখন প্রোপার্টিজ কন্ট্রাক্টের ডেটা এবং কার্যকারিতা সংরক্ষণ করে। Solidity তে মাল্টিপল ইনহেরিটেন্স এবং ভিন্ন ভিন্ন প্রোপার্টি visibility ব্যবহার করে স্মার্ট কন্ট্রাক্টের কার্যকারিতা আরো শক্তিশালী করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...