যদি কেউ কোড লেখেন যাতে অভ্যন্তরীণ ভেরিয়েবল $ _ ক্ষেত্রগুলি গিটার / সেটার পদ্ধতি ব্যবহার না করে অ্যাক্সেসযোগ্য হয়, তবে সেখানে কি এটি বর্ণনা করার জন্য কোনও উপযুক্ত শব্দ ব্যবহৃত হয়?
ম্যানেজমেন্টের সাথে ব্যবহার করার জন্য যথেষ্ট নম্র কিছু :)
যদি কেউ কোড লেখেন যাতে অভ্যন্তরীণ ভেরিয়েবল $ _ ক্ষেত্রগুলি গিটার / সেটার পদ্ধতি ব্যবহার না করে অ্যাক্সেসযোগ্য হয়, তবে সেখানে কি এটি বর্ণনা করার জন্য কোনও উপযুক্ত শব্দ ব্যবহৃত হয়?
ম্যানেজমেন্টের সাথে ব্যবহার করার জন্য যথেষ্ট নম্র কিছু :)
উত্তর:
ব্যক্তিগত বেসরকারী সদস্যদের এক্সপোজ করা ভদ্র সমাজে কখনও ভাল জিনিস হয় না ...
এই অনুশীলনটি হ'ল / দুর্বল এনক্যাপসুলেশনের অভাব।
private
) এর এনক্যাপসুলেশন ধারণার আরও একটি বাস্তবায়ন রয়েছে।
__
নাম ম্যাংলিংয়ের জন্য সত্যই ব্যবহার করা উচিত )। অন্যান্য ভাষাগুলিতেও খুব কম এনক্যাপসুলেশন থাকতে পারে, যেমন, জাভাতে প্রতিফলন এবং ব্যক্তিগত ভেরিয়েবলগুলি পেতে সি ++ তে পয়েন্টার পাটিগণিত। পাইথন কেবল এটিকে বোঝার জন্য সিনট্যাক্স তৈরি করে না।
__
নাম ম্যাংলিং ব্যবহার করে । ছাড়া __
এটি নকশাটি এখনও ভাল এনক্যাপসুলেশন প্রতিফলিত করে। "জনসাধারণ" অর্থ দাবী করার অর্থ "দুর্বল এনক্যাপসুলেশনের অভাব" বা ভুল। ধারণাটি এখনও বিদ্যমান। উত্স কোড যথাযথ সজ্জা অভাব আছে।
ওডে ইতিমধ্যে উল্লিখিত এনক্যাপসুলেশনের অভাব ছাড়াও, প্রোগ্রামিং ভাষা এবং এর উদাহরণগুলির উপর নির্ভর করে এটি "সাধারণ পুরানো ডেটা " ও হতে পারে (যেখানে এটি অ্যান্টিপ্যাটার্ন বা কোড গন্ধ নয়)।
একে একটি সম্পত্তি ব্যাগ বলা হয়।
সাধারণত এটি সম্পর্কিত সম্পর্কিত সংস্থাগুলির একটি সেট ধরে রাখতে ব্যবহৃত হয় (প্রতিটি সম্ভবত সম্ভাব্যরূপে কোনও শ্রেণীর অবজেক্ট হতে পারে যার উপযুক্ত অ্যাক্সেস স্পেসিফায়ার রয়েছে বা না)। তবে পার্শ্ববর্তী কাঠামো সম্পত্তিগুলির একটি ব্যাগ মাত্র।
একে "নির্দিষ্ট কোডিং মান অনুসরণ না করা" বলা হয়।
ওপি লিখেছেন:
অভ্যন্তরীণ পরিবর্তনশীল $ _ ক্ষেত্রগুলি গিটার / সেটার পদ্ধতিগুলি ব্যবহার না করেই অ্যাক্সেসযোগ্য
এটি আপনার স্ট্যান্ডার্ডের বিপরীতে হতে পারে এবং (এভাবে) এটি কোড গন্ধ হতে পারে। তবে এটি অগত্যা অল্প প্রয়োজনীয় নয় ulation অভ্যন্তরীণ (যেমন "কেবলমাত্র অভ্যন্তরীণ ব্যবহারের মতো") বহিরাগত বিশ্বের গেটর এবং সেটটারগুলির তুলনায় ভেরিয়েবল এক্সপোজ করা আরও খারাপ হতে পারে।
প্রশ্নটি হল: $_fields
বাইরের বিশ্বের জন্য কি অ্যাক্সেসযোগ্য হওয়া উচিত ?
যদি তা হয় তবে আমাদের কাছে একটি কেস রয়েছে যেখানে আপনি গেটার / সেটার পদ্ধতি যুক্ত করবেন। এই পদ্ধতিগুলি কোনও কিছুকেই আবদ্ধ করে না তবে সত্য যে $_fields
কোনও ধরণের পরিবর্তনশীল (যেমনটি ফ্লাইতে গণনা করা / আনীত / ইত্যাদির বিপরীতে)। ভাষার উপর নির্ভর করে, আপনি সম্ভবত এখনও প্রকারটি (ওরফে একটি বাস্তবায়ন বিশদ) বাইরে থেকে ফাঁস করবেন। আপনি সর্বদা getters / setters চান কিনা, বা শুধুমাত্র যখন "প্রয়োজন" কোডিং মানক সমস্যা।
তাহলে $_fields
উচিত নয় অ্যাক্সেস করা, তারপর, ভাল, এটি অ্যাক্সেস করবেন না। আপনার অন্যকে ভাষা স্তরে অ্যাক্সেস করা থেকে বিরত রাখা উচিত (ব্যক্তিগত এবং বন্ধুবান্ধব) বা না (যা কিছু পরিস্থিতিতে ডিবাগ করা সহজ করতে পারে) - তা আবার - একটি কোডিং মানক সমস্যা।
এনক্যাপসুলেশনের বিষয়টি সম্পূর্ণরূপে অর্থেগোনাল। ভেটোলিং এনক্যাপসুলেশন গিটার এবং সেটটারগুলির সাথে একেবারে সম্ভব। এতে পিছলে যাওয়া আরও সহজ , কারণ বেশিরভাগ মানুষের অ্যালার্ম বেল বাজায় না যখন তারা একগুচ্ছ গেটস এবং সেটারগুলি দেখায় - কোড যা আপাতদৃষ্টিতে সর্বোত্তম অভ্যাস অনুসরণ করে। কোড, যে খুব ভাল একটি পরিবর্তনশীল নামক চেয়ে অভ্যন্তরীণ বাস্তবায়ন বিস্তারিত আরো অনেক কিছু নির্ভরতা পরিচয় করিয়ে পারে $_fields
যে ঘটবে হিসাবে নির্দিষ্ট করা private
।
আমি খারাপ উপমাগুলির ভক্ত: দরিদ্র এনক্যাপসুলেশনকে কল করা বন্দুকটিকে খুনি বলে ডাকার মতো।
আমি এই ধরনের ভেরিয়েবলগুলি পাবলিক সদস্য ভেরিয়েবলগুলি বলব ।
যদি আপনার সেটার / গেটর পদ্ধতিগুলি আর কিছু না থাকে
void setfoo(bar){foo=bar;}
foo getfoo{return foo;}
তারপরে কেবল একটি পাবলিক ভেরিয়েবল তৈরি করা কিছু পার্শ্বের ক্ষেত্রে যেখানে কিছু পার্থক্য রয়েছে তার বাইরে কিছু টাইপিং সংরক্ষণ করা।