অতিরঞ্জিত সংক্ষিপ্তসার (টিএম)
আপনি কিছু জিনিস পেতে।
- প্রোটোটাইপাল উত্তরাধিকার এবং ক্লোনিং
- নতুন বৈশিষ্ট্যের গতিশীল সংযোজন
- একই শ্রেণীর বিভিন্ন সংস্করণ (স্পেসিফিকেশন স্তর) এর বস্তুর সহ-অস্তিত্ব।
- আরও সাম্প্রতিক সংস্করণগুলির সাথে সম্পর্কিত অবজেক্টগুলির (নির্দিষ্টকরণের স্তরগুলি) অতিরিক্ত "optionচ্ছিক" বৈশিষ্ট্য থাকবে।
- পুরানো এবং নতুন বৈশিষ্ট্যের অন্তর্নিহিত
- বৈধতা নিয়মের আত্মপ্রকাশ (নীচে আলোচনা করা হয়েছে)
একটি মারাত্মক অপূর্ণতা আছে।
- সংকলক আপনার জন্য ভুল বানানযুক্ত স্ট্রিং পরীক্ষা করে না।
- স্বয়ংক্রিয় রিফ্যাক্টরিং সরঞ্জামগুলি আপনার জন্য সম্পত্তি কীগুলির নাম পরিবর্তন করবে না - যদি আপনি অভিনব ব্যক্তির জন্য অর্থ প্রদান করেন না।
জিনিসটি হ'ল, আপনি ব্যবহার করতে পারেন আত্ম, অন্তরীক্ষা। সাধারণত এটি ঘটে:
- প্রতিবিম্ব সক্ষম করুন।
- আপনার প্রকল্পে একটি বৃহত অন্তর্নির্মাণ লাইব্রেরি যুক্ত করুন।
- বৈশিষ্ট্য বা টীকা সহ বিভিন্ন অবজেক্টের পদ্ধতি এবং বৈশিষ্ট্যগুলি চিহ্নিত করুন।
- ইন্ট্রোস্পেকশন লাইব্রেরি যাদু করতে দিন।
অন্য কথায়, আপনার যদি কখনও এফপির সাথে ইন্টারফেসের প্রয়োজন না হয় তবে আপনাকে রিচ হিকির পরামর্শ নিতে হবে না।
সর্বশেষে, তবে সর্বনিম্ন নয় (সবচেয়ে সুন্দরও নয়), যদিও String
সম্পত্তি কী হিসাবে ব্যবহার করা সবচেয়ে সহজবোধ্য ধারণা তৈরি করে, আপনাকে String
এস ব্যবহার করতে হবে না । অ্যান্ড্রয়েড including সহ অনেকগুলি লিগ্যাসি সিস্টেম ক্লাস, বৈশিষ্ট্য, সংস্থান ইত্যাদি উল্লেখ করার জন্য পুরো ফ্রেমওয়ার্কের মাধ্যমে পূর্ণসংখ্যার আইডি ব্যবহার করে uses
অ্যান্ড্রয়েড হ'ল গুগল ইনক এর ট্রেডমার্ক is
আপনি উভয় বিশ্বকেই খুশি করতে পারেন।
জাভা বিশ্বের জন্য, যথারীতি getters এবং সেটারগুলি প্রয়োগ করুন।
এফপি বিশ্বের জন্য, বাস্তবায়ন করুন
Object getPropertyByName(String name)
void setPropertyByName(String name, Object value) throws IllegalPropertyChangeException
List<String> getPropertyNames()
Class<?> getPropertyValueClass(String name)
এই ফাংশনের অভ্যন্তরে হ্যাঁ, কুরুচিপূর্ণ কোড রয়েছে তবে আইডিই প্লাগইন রয়েছে যা আপনার পক্ষে তা পূরণ করবে ... আহ, একটি স্মার্ট প্লাগইন যা আপনার কোড পড়ে ।
জিনিসগুলির জাভা দিকটি যথারীতি পারফরম্যান্স হবে। তারা কখনই কোডের কুৎসিত অংশটি ব্যবহার করবে না । এমনকি আপনি এটি জাভাডোক থেকে লুকিয়ে রাখতে চাইবেন।
বিশ্বের এফপি পক্ষ তারা যে "লিট" কোড চায় তা লিখতে পারে এবং কোডটি ধীর হয়ে যাওয়ার বিষয়ে তারা সাধারণত আপনাকে চিত্কার করে না।
সাধারণভাবে, অবজেক্টের জায়গায় মানচিত্র (সম্পত্তি ব্যাগ) ব্যবহার করা সফ্টওয়্যার বিকাশে সাধারণ বিষয়। ক্রিয়ামূলক প্রোগ্রামিং বা কোনও বিশেষ ধরণের ভাষার ক্ষেত্রে এটি অনন্য নয়। এটি কোনও প্রদত্ত ভাষার জন্য একটি মূর্খ দৃষ্টিভঙ্গি নাও হতে পারে, তবে এমন পরিস্থিতি রয়েছে যা এর জন্য আহ্বান জানায়।
বিশেষত, সিরিয়ালাইজেশন / ডেসারিয়ালাইজেশন প্রায়শই একই জাতীয় কৌশল প্রয়োজন।
"অবজেক্ট হিসাবে মানচিত্র" সম্পর্কিত কিছু সাধারণ ধারণা।
- আপনাকে "অবজেক্ট হিসাবে মানচিত্র" বৈধকরণের জন্য এখনও একটি ফাংশন সরবরাহ করতে হবে। পার্থক্যটি হ'ল "মানচিত্র হিসাবে মানচিত্র" আরও নমনীয় (কম সীমাবদ্ধ) বৈধতা মানদণ্ডের জন্য মঞ্জুরি দেয়।
- আপনি "অবজেক্ট হিসাবে মানচিত্র" এ সহজেই যুক্ত ক্ষেত্রগুলি যুক্ত করতে পারেন।
- কোনও বৈধ অবজেক্টের ন্যূনতম প্রয়োজনের একটি স্পেসিফিকেশন সরবরাহ করতে, আপনার প্রয়োজন হবে:
- মানচিত্রে প্রত্যাশিত কীগুলির "সর্বনিম্ন প্রয়োজনীয়" সেটটি তালিকাবদ্ধ করুন
- যার মূল যাচাই করা দরকার তার প্রতিটি কীর জন্য একটি মান বৈধকরণের ফাংশন সরবরাহ করুন
- যদি কোনও বৈধতা সংক্রান্ত নিয়ম থাকে যা একাধিক কী মানগুলি পরীক্ষা করতে হয় তবে তাও সরবরাহ করুন।
- লাভ কী? এইভাবে স্পেসিফিকেশন সরবরাহ করা অন্তর্নিজ্ঞাপক: আপনি নূন্যতম প্রয়োজনীয় কীগুলির সেটটি জিজ্ঞাসা করতে এবং প্রতিটি কীটির বৈধতা ফাংশন পেতে একটি প্রোগ্রাম লিখতে পারেন।
- ওওপি-তে, এগুলি সমস্তই "এনক্যাপসুলেশন" নামে একটি কালো বাক্সে পরিণত হয়। মেশিন-পঠনযোগ্য বৈধতা যুক্তির জায়গায়, কলার কেবল মানব-পঠনযোগ্য "এপিআই ডকুমেন্টেশন" পড়তে পারবেন (ভাগ্যক্রমে এটি উপস্থিত থাকলে)।