উচ্চ সামঞ্জস্যতা কী এবং কীভাবে এটি ব্যবহার করবেন / এটি তৈরি করবেন?


84

আমি কম্পিউটার প্রোগ্রামিং শিখছি এবং বেশ কয়েকটি স্থানে আমি সংহতির ধারণাকে হোঁচট খেয়েছি এবং আমি বুঝতে পেরেছি যে একটি সফ্টওয়্যারটির "উচ্চ সংহতি" থাকা বাঞ্ছনীয় তবে এর অর্থ কী? আমি জাভা, সি এবং পাইথন প্রোগ্রামার সি ++ প্রিমার বইটি থেকে সি ++ শিখছি যা সূচকে না রেখে সংহতির কথা উল্লেখ করেছে, আপনি কি আমাকে এই বিষয় সম্পর্কে কিছু লিঙ্কে নির্দেশ করতে পারেন? কম্পিউটার বিজ্ঞান সংহতি সম্পর্কিত উইকিপিডিয়া পৃষ্ঠাটি আমি খুঁজে পেলাম না কারণ এটি কেবলমাত্র এটি একটি গুণগত পরিমাপ এবং সঠিক কোড উদাহরণ দেয় না বলে জানায়।



4
উচ্চ সংহতি: একসাথে বসার সাথে সম্পর্কিত আচরণ এবং অন্য কোথাও বসে থাকার জন্য সম্পর্কিত সম্পর্কহীন আচরণ।
তেওমন শিপাহি

উত্তর:


242

উচ্চ সংহতি হ'ল যখন আপনার ক্লাস থাকে যা একটি ভাল সংজ্ঞায়িত কাজ করে। নিম্ন সংহতি হ'ল যখন কোনও শ্রেণি প্রচুর কাজ করে যা খুব একটা মিল থাকে না।

আসুন এই উদাহরণটি নেওয়া যাক:

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

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


14
সত্যিই আমি এই মত সংহতি সংজ্ঞায়িত করি না। আপনার সংজ্ঞাটি এসআরপি (একক দায়বদ্ধতা নীতি)। এবং প্যাকেজ ওয়াইজ, একই বৈশিষ্ট্য-প্রদক্ষিণের ক্লাসগুলি একে অপরের নিকটবর্তী কিনা সে সম্পর্কে একাত্মতা রয়েছে।
v.oddou

4
এসআরপি (একক দায়বদ্ধতা নীতি) একই ধারণাটি প্রকাশের অন্য একটি উপায় another সংহতি একটি মেট্রিক বেশি; এসআরপি একটি বাস্তববাদী গাইডলাইন যা অনুসরণ করা হলে সম্মিলিত শ্রেণীর দিকে পরিচালিত হবে।
ComDubh

4
আমি মনে করি ক্লাস উইন্ডোতে শ্রেণিফলের কোনও বস্তু কল করা উচিত নয় কারণ এর একমাত্র উদ্দেশ্য রেন্ড করা এটি শ্রেণীর যোগফল বা অন্য কোনও শ্রেণীর "অস্তিত্ব" সম্পর্কে জানতে হবে না Dri ড্রাইভার বলতে অন্য একটি ক্লাস থাকা উচিত যা ফলাফল পাওয়া উচিত say যোগফল এবং ক্লাস উইন্ডোতে রেন্ডার করার জন্য ফলাফলটি পাস করবে
একলব্য

4
আমি পাই না। এটি চাচা বব এর ক্লিন কোড অনুসারে সংহতি নয়। এটি এসআরপি
করলিহনস

খুব ঝরঝরে ব্যাখ্যা! ধন্যবাদ
ভিনসেন্ট ল্লেডেরেস

55

স্টিভ ম্যাককনেলের কোড সম্পূর্ণ থেকে এটি কী তা নিয়ে একটি ব্যাখ্যা :

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

চাচা বব এর পরিষ্কার কোড থেকে এটি অর্জনের কিছু উপায় :

ক্লাসে সংখ্যার উদাহরণ ভেরিয়েবল থাকা উচিত । শ্রেণীর প্রতিটি পদ্ধতিতে এক বা একাধিক ভেরিয়েবল পরিচালনা করা উচিত। সাধারণভাবে আরও ভেরিয়েবল একটি পদ্ধতি তার শ্রেণিতে যে পদ্ধতিটি তত বেশি সংহত করে ip এমন একটি শ্রেণি যেখানে প্রতিটি পদ্ধতিতে প্রতিটি ভেরিয়েবল ব্যবহার করা হয় তা সর্বাধিক একত্রিত।

সাধারণভাবে এ জাতীয় সর্বাধিক সম্মিলিত শ্রেণি তৈরি করা ঠিক নয় বা সম্ভব নয়; অন্যদিকে, আমরা একত্রিত হতে চাই। যখন সংহতি উচ্চ হয়, এর অর্থ এই হয় যে শ্রেণীর পদ্ধতি এবং ভেরিয়েবলগুলি সহ-নির্ভরশীল এবং যৌক্তিক পুরো হিসাবে একসাথে স্তব্ধ হয়ে যায়।

একত্রীকরণের ধারণাটি মিলনের ধারণার সাথে দৃ strongly়ভাবে সম্পর্কিত; এছাড়াও, একাত্ম দায়িত্বের নীতিমালা (এসওএলআইডি থেকে এস) নামক উচ্চ সংহতির theশ্বরিক ভিত্তিতে একটি নীতি রয়েছে।


4
আমি মনে করি আপনার উত্তর গৃহীত প্রশ্নের চেয়ে আরও সম্পূর্ণ, কারণ এটি এসআরপি এবং সংহতি উভয়ই বর্ণনা করে এবং তাই এটি এই দুটি ধারণার মধ্যে বৈশিষ্ট্য এবং পার্থক্য বুঝতে সহায়তা করে।
দ্য উইনস-লায়ার

18

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

উদাহরণটি বেশ বিষয়গত, কারণ আমাদেরও স্কেল বিবেচনা করতে হবে consider একটি সাধারণ প্রোগ্রাম খুব বেশি সংশোধন করা উচিত নয় বা এটি খণ্ডিত হবে; একটি জটিল প্রোগ্রাম জটিলতার যত্ন নিতে আরও স্তরের বিমূর্ততা প্রয়োজন হতে পারে।

যেমন ইমেল ক্লাস। এটিতে সিসি, বিসিসি, বিষয়, বডি থেকে ডেটা সদস্য থাকতে হবে এবং এই পদ্ধতিগুলি সেভস এ্যাড ড্রাফট (), প্রেরণ (), ফেলে দেওয়া ড্রাফ্ট () থাকতে পারে। লগইন () এখানে থাকা উচিত নয়, যেহেতু প্রচুর ইমেল প্রোটোকল রয়েছে এবং আলাদাভাবে প্রয়োগ করা উচিত।


এটি এসআরপি-র সংজ্ঞা: "একটি শ্রেণীর কেবলমাত্র যা করা উচিত তা করা উচিত এবং এটি পুরোপুরি করে" "
AliN11

11

একত্রিতকরণ সাধারণত LCOM (সংহতির অভাব) মেট্রিকের একটি ব্যবহার করে পরিমাপ করা হয়, আসল LCOM মেট্রিক চিদাম্বার এবং কেমেরের থেকে এসেছিল। উদাহরণস্বরূপ দেখুন: http://www.computing.dcu.ie/~renaat/ca421/LCOM.html

আরও দৃ concrete় উদাহরণ: যদি কোনও শ্রেণীর উদাহরণের জন্য একটি ব্যক্তিগত ক্ষেত্র এবং তিনটি পদ্ধতি থাকে; যখন তিনটি পদ্ধতিই এই ক্ষেত্রটি কোনও ক্রিয়াকলাপ সম্পাদন করতে ব্যবহার করে তখন শ্রেণিটি খুব একত্র হয়।

সংযুক্ত শ্রেণীর সিউডো কোড:

class FooBar {
  private SomeObject _bla = new SomeObject();

  public void FirstMethod() {
    _bla.FirstCall();
  }

  public void SecondMethod() {
    _bla.SecondCall();
  }

  public void ThirdMethod() {
    _bla.ThirdCall();
  }
}

যদি কোনও শ্রেণীর উদাহরণস্বরূপ তিনটি ব্যক্তিগত ক্ষেত্র এবং তিনটি পদ্ধতি থাকে; যখন তিনটি পদ্ধতিই তিনটি ক্ষেত্রের মধ্যে একটি মাত্র ব্যবহার করে তখন শ্রেণিটি খুব কম হয় না।

একটি দুর্বল সহচর শ্রেণীর সিউডো কোড:

class FooBar {
  private SomeObject _bla = new SomeObject();
  private SomeObject _foo = new SomeObject();
  private SomeObject _bar = new SomeObject();

  public void FirstMethod() {
    _bla.Call();
  }

  public void SecondMethod() {
    _foo.Call();
  }

  public void ThirdMethod() {
    _bar.Call();
  }
}

ক্লাস একটি জিনিস নীতি করছেন একক দায়বদ্ধতা নীতি যা রবার্ট সি মার্টিন থেকে আসে এবং সলিড নীতিগুলির মধ্যে একটি। নীতিটি নির্দেশ করে যে কোনও শ্রেণীর পরিবর্তনের একমাত্র কারণ থাকতে হবে।

একক দায়িত্বের নীতিটির কাছাকাছি থাকার ফলে আরও সংঘবদ্ধ কোডের ফলাফল হতে পারে তবে আমার মতে এ দুটি ভিন্ন জিনিস two


4

এটি নিম্ন সংহতির উদাহরণ:

class Calculator
{


     public static void main(String args[])
     {

          //calculating sum here
          result = a + b;
          //calculating difference here
          result = a - b;
          //same for multiplication and division
     }
}

তবে উচ্চ সংহতি বোঝায় যে ক্লাসগুলির ক্রিয়াকলাপগুলি তাদের যা করা উচিত তা করে (যেমন তাদের নাম দেওয়া হয়)। এবং কিছু ফাংশন না অন্য কিছু ফাংশন কাজ। সুতরাং, নিম্নলিখিতগুলি উচ্চ সংহতির উদাহরণ হতে পারে:

class Calculator
{


     public static void main(String args[])
     {

          Calculator myObj = new Calculator();
          System.out.println(myObj.SumOfTwoNumbers(5,7));
      }


     public int SumOfTwoNumbers(int a, int b)
     {

          return (a+b);
     }

     //similarly for other operations

}

3

সংহতির নীতিটি ভাবার একটি সাধারণ উপায় হ'ল আপনার অন্য কোডগুলির সাথে একটি কোডও সনাক্ত করা উচিত যা হয় এটির উপর নির্ভর করে, বা এটি নির্ভর করে। সংহতি ক্লাস স্তরের উপরে রচনা স্তরের ক্ষেত্রে প্রয়োগ করা উচিত এবং হওয়া উচিত। উদাহরণস্বরূপ কোনও প্যাকেজ বা নেমস্পেসে আদর্শভাবে এমন কিছু ক্লাস থাকতে হবে যা কিছু সাধারণ থিমের সাথে সম্পর্কিত এবং এটি অন্যান্য প্যাকেজ / নেমস্পেসের উপর নির্ভরশীলতার চেয়ে বেশি আন্তঃনির্ভর। অর্থাৎ স্থানীয়তা নির্ভরতা রাখুন।


1

একাত্মতা মানে একটি শ্রেণি বা একটি পদ্ধতি কেবল একটি নির্ধারিত কাজ করে। পদ্ধতি বা শ্রেণীর নামও স্ব-বর্ণনামূলক হওয়া উচিত। উদাহরণস্বরূপ, আপনি যদি কোনও ক্যালকুলেটর লিখেন তবে আপনার ক্লাসের নাম "ক্যালকুলেটর" রাখা উচিত, "এসিডেফঘজ" নয়। এছাড়াও প্রতিটি কাজের জন্য একটি পদ্ধতি তৈরি করার জন্য আপনার বিবেচনা করা উচিত, যেমন বিয়োগ () যোগ () ইত্যাদি ... ভবিষ্যতে আপনার প্রোগ্রামটি ব্যবহার করতে পারে এমন প্রোগ্রামার আপনার পদ্ধতিগুলি কী করছে তা ঠিক জানেন। ভাল নামকরণ মন্তব্য করার প্রচেষ্টা হ্রাস করতে পারে

এছাড়াও একটি নীতি DRY - নিজেকে পুনরাবৃত্তি করবেন না


1

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

উত্স কোড সংহতির সারমর্মটি হ'ল মডিউলটির উত্স কোডটি একটি সাধারণ, ভাল সংজ্ঞায়িত লক্ষ্যের দিকে একত্রে কাজ করে। মডিউল আউটপুটগুলি তৈরি করতে প্রয়োজনীয় নূন্যতম পরিমাণের কোডটি মডিউলে রয়েছে এবং আরও কিছু নয়। ইন্টারফেসটি সুস্পষ্টভাবে সংজ্ঞায়িত করা হয়েছে এবং ইনপুটগুলি ইন্টারফেসের মাধ্যমে প্রবাহিত হয় এবং ইন্টারফেসের মাধ্যমে আউটপুটগুলি আবার প্রবাহিত হয়। কোনও পার্শ্ব প্রতিক্রিয়া নেই এবং জোরটি ন্যূনতমতার উপর রয়েছে।

কার্যকরীভাবে সমন্বিত মডিউলগুলির একটি সুবিধা হ'ল ইউনিট পরীক্ষাগুলি বিকাশ এবং স্বয়ংক্রিয়করণ সোজা straight প্রকৃতপক্ষে মডিউলটির একাত্মতার একটি ভাল পরিমাপ হল মডিউলটির জন্য সম্পূর্ণ ইউনিট পরীক্ষার সম্পূর্ণ সেট তৈরি করা কত সহজ easy

মডিউল কোনও অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজে কোনও ক্লাস বা কোনও ফাংশনাল ল্যাংগুয়েজ বা নন-অবজেক্ট ওরিয়েন্টেড ল্যাংগুয়েজ যেমন সি এর মতো মূল কাজটির বেশিরভাগ অংশই আইবিএম-এর ফিরে কোবোল প্রোগ্রামগুলির সাথে জড়িত কাজটি অন্তর্ভুক্ত করে ১৯ 1970০ এর দশকে সুতরাং সংহতি অবশ্যই কোনও অবজেক্ট ওরিয়েন্টেড ধারণা নয়।

সংঘবদ্ধতার ধারণা এবং সংযুক্তির সম্পর্কিত ধারণাটি যে গবেষণার কাছ থেকে এসেছে সেই গবেষণার মূল অভিপ্রায়টি ছিল কোথায় কোথায় প্রোগ্রামগুলির বৈশিষ্ট্যগুলি যা বুঝতে, বজায় রাখা এবং প্রসারিত করা সহজ ছিল সে সম্পর্কে গবেষণা research লক্ষ্যটি ছিল প্রোগ্রামিংয়ের সর্বোত্তম অনুশীলনগুলি শিখতে, সেই সেরা অনুশীলনের কোডিং করা এবং তারপরে অন্যান্য প্রোগ্রামারগুলিকে অনুশীলনগুলি শেখানো teach

ভাল প্রোগ্রামারদের লক্ষ্য হ'ল উত্স কোডটি লিখুন যার পরিবেশ এবং সমস্যাটি সমাধান হওয়ার কারণে সংযোগ যতটা সম্ভব as এর দ্বারা বোঝা যায় যে একটি বৃহত প্রয়োগে উত্স কোডের প্রধান অংশের কিছু অংশ সেই মডিউল বা শ্রেণীর উত্স কোডের সংহতকরণের স্তর হিসাবে অন্যান্য অংশ থেকে পৃথক হবে। আপনি যে সমস্যার সমাধান করতে চেষ্টা করছেন তার কারণে কিছু সময় সেরা আপনি পেতে পারেন তা সাময়িক বা ক্রমযুক্ত সম্মিলন।

একাত্মতার সেরা স্তর হ'ল কার্যকরী সংহতি। ক্রিয়ামূলক সমন্বয়যুক্ত একটি মডিউল গাণিতিক ফাংশনের অনুরূপ যাতে আপনি ইনপুটগুলির একটি সেট সরবরাহ করেন এবং আপনি একটি নির্দিষ্ট আউটপুট পান। সত্যিকারের ক্রিয়ামূলক মডিউলটির আউটপুট ছাড়াও পার্শ্ব প্রতিক্রিয়া থাকবে না এবং এটি কোনও ধরণের অবস্থাও বজায় রাখতে পারবে না। পরিবর্তে এটিতে একটি সুস্পষ্ট সংজ্ঞাযুক্ত ইন্টারফেস থাকবে যা মডিউলের কোনও ইন্টার্নাল প্রকাশ না করেই মডিউলটির কার্যকারিতা encapsulates এবং মডিউলটি ব্যবহার করা ব্যক্তি একটি নির্দিষ্ট ইনপুট সরবরাহ করবে এবং বিনিময়ে একটি নির্দিষ্ট আউটপুট পাবে। সত্যিকারের কার্যকরী মডিউলটি থ্রেডও নিরাপদ হওয়া উচিত।

অনেক প্রোগ্রামিং ভাষার লাইব্রেরিতে ক্লাস, টেম্পলেট বা ফাংশন কিনা সেগুলি কার্যকরী মডিউলগুলির বেশ কয়েকটি উদাহরণ ধারণ করে। সর্বাধিক কার্যকরী সমন্বয়মূলক উদাহরণগুলি হ'ল গাণিতিক ক্রিয়া যেমন পাপ, কোসাইন, বর্গমূল ইত্যাদি be

অন্যান্য ফাংশনগুলির পার্শ্ব প্রতিক্রিয়া থাকতে পারে বা কোনও ধরণের স্থিতি বজায় রাখতে পারে যার ফলে এই ফাংশনগুলির ব্যবহার আরও জটিল করে তোলে।

উদাহরণস্বরূপ এমন একটি ফাংশন যা একটি ব্যতিক্রম ছুঁড়ে দেয় বা একটি বৈশ্বিক ত্রুটি পরিবর্তনশীল ( errnoসি তে) সেট করে বা অনুক্রমের মধ্যে ব্যবহার করা আবশ্যক ( strtok()ফাংশনটি স্ট্যান্ডার্ড সি লাইব্রেরি থেকে উদাহরণ হিসাবে এটি অভ্যন্তরীণ অবস্থা বজায় রাখে) বা যা একটি পয়েন্টার সরবরাহ করে যা তখন অবশ্যই পরিচালনা করা হবে বা কিছু লগ ইউটিলিটিতে একটি লগ ইস্যু করা হ'ল সমস্ত ফাংশনের উদাহরণ যা আর কার্যকরী একাত্মতা নয়।

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


আপনি বলছেন The minimum amount of source code needed to create the module outputs is in the module and no moreএটি কোহেন্সের
v.oddou

@ v.oddou, কোডের ন্যূনতম পরিমাণ প্রকৃতপক্ষে সংহতির সাথে সম্পর্কিত। মডিউলটির সাথে সম্পর্কিত না এমন কোনও মডিউলে আরও কোডের কোডের পার্শ্ব প্রতিক্রিয়া হওয়ার সম্ভাবনা তত বেশি থাকে তাই নিম্ন সংহতি। প্রতিটি ধারণার বিভিন্ন দৃষ্টিকোণ রয়েছে বিশেষত ধারণার মতো ধারণা যা কিছুটা অস্পষ্ট। একত্রিতকরণের জন্য পরিমাপগুলি গুণগত হয় যা কোনও ধরণের রুব্রিক ব্যবহার করে একটি নির্দিষ্ট মডিউলকে একটি বিভাগ বা অন্যটিতে বরাদ্দ করার জন্য এক ধরণের ফাজি যুক্তি প্রয়োজন। আউটপুটগুলির জন্য ন্যূনতম কোড বলা উচ্চ সামঞ্জস্যতার জন্য বেশ কয়েকটিগুলির মধ্যে পর্যাপ্ত বৈশিষ্ট্য নয়।
রিচার্ড চেম্বারস

1

সংঘবদ্ধতা কী তা বেশিরভাগ উত্তরই ব্যাখ্যা করে না, এটি মামার ববসের বই ক্লিন কোডে ভালভাবে সংজ্ঞায়িত করা হয়েছে।

ক্লাসে সংখ্যার উদাহরণ ভেরিয়েবল থাকা উচিত। শ্রেণীর প্রতিটি পদ্ধতিতে এক বা একাধিক ভেরিয়েবল পরিচালনা করা উচিত। সাধারণভাবে আরও ভেরিয়েবল একটি পদ্ধতি তার শ্রেণিতে যে পদ্ধতিটি তত বেশি সংহত করে man এমন একটি শ্রেণি যেখানে প্রতিটি পদ্ধতিতে প্রতিটি ভেরিয়েবল ব্যবহার করা হয় তা সর্বাধিক একত্রিত। সাধারণভাবে এ জাতীয় সর্বাধিক সম্মিলিত শ্রেণি তৈরি করা ঠিক নয় বা সম্ভব নয়; অন্যদিকে, আমরা একত্রিত হতে চাই। যখন সংহতি উচ্চ হয়, এর অর্থ এই হয় যে শ্রেণীর পদ্ধতি এবং ভেরিয়েবলগুলি সহ-নির্ভরশীল এবং যৌক্তিক পুরো হিসাবে একসাথে স্তব্ধ হয়ে যায়।

আমি এটি একটি শ্রেণির সংজ্ঞা দিয়ে ব্যাখ্যা করি

class FooBar {
private _bla;
private _foo;
private _bar;

function doStuff()

   if(this._bla>10){
     this._foo = 10;
     this._bar = 20;
   }

}
function doOtherStuff(){

    if(this._foo==10){
       this._bar = 100;
       this._bla = 200;
    }
}

}

আপনি যদি উপরের উদাহরণটি দেখেন শ্রেণিটি সংহত হয় যার অর্থ একত্রিত হয়ে কাজ করার জন্য ভেরিয়েবলগুলি শ্রেণীর মধ্যে ভাগ করা হয় এবং আরও ভেরিয়েবলগুলি ভাগ করা হয় যার অর্থ শ্রেণিটি অত্যন্ত সংহত এবং একক ইউনিট হিসাবে কাজ করে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.