ios - স্থির ফাংশন এবং একা একা ক্লাস মধ্যে দ্রুতগতিতে




swift singleton (2)

নিশ্চিত যে এটি বিভ্রান্তিকর শোনায় এবং তর্ক হতে পারে। তবে সেরা অভ্যাস থেকে আমি কিছু পরামর্শ রাখতে পারি।

সিঙ্গেলটন সাধারণত একটি সংস্থান সংস্থান এবং উদাহরণস্বরূপ ওয়ান টাইমার সূচনা তৈরি করতে ব্যবহৃত হয়: একটি ডাটাবেস সংযোগকারী, লগইন হ্যান্ডলার এবং এই জাতীয়।

ইউটিলিটি ক্লাস এমন ক্লাস যা কেবল স্ট্যাটিক ফাংশন এবং ভেরিয়েবল থাকে। এটি async টাস্ক এবং ডেটাবেস সংযোজক খোলার মত ব্যয়বহুল সংস্থান হ্যান্ডলিংয়ের সাথে ডিল করা উচিত নয়।

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

অবজেক্টিভ-সি রানটাইম যতক্ষণ না ব্যবহৃত হয় ততক্ষণ স্ট্যাটিক ডিসপ্যাচ ডায়নামিক ডিসপ্যাচের চেয়ে 4 গুণ বেশি গতিযুক্ত । এটি দ্রুতগতির জন্যও সত্য। তবে ডায়নামিক্লি প্রেরণে এটি কেবল 4 ন্যানো সেকেন্ড সময় নেয়।

আমি আশা করি এটি আপনাকে পরিষ্কার করে দিবে।

আমি একটি শ্রেণি তৈরি করতে চাই যেখানে সমস্ত ইউটিলিটি পদ্ধতি রাখা হবে এবং অ্যাপগুলি জুড়ে এই পদ্ধতিগুলি ব্যবহার করা হবে।
সমস্যা: 1
একটি সিঙ্গলটন ক্লাস তৈরি করা এবং সমস্ত প্রয়োজনীয় পদ্ধতিগুলি সেখানে রাখা ভাল কি আমার এমন ক্লাস তৈরি করা উচিত যেখানে সমস্ত ফাংশন স্থির থাকবে।
সমস্যা: 2
দ্রুতগতিতে উপরোক্ত দুটি পদ্ধতির মধ্যে প্রধান পার্থক্য কী?
সমস্যা: 3
এটি আইওএসের পারফরম্যান্সকে কীভাবে প্রভাবিত করবে?


বলি আমাদের দুটি ক্লাস রয়েছে।

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

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

সুতরাং প্রযুক্তিগতভাবে উভয়ই আপনার ইউটিলিটি ক্লাসের দৃশ্যের জন্য খুব একইরকম লাগতে পারে এবং সিদ্ধান্ত নিতে এটি বিভ্রান্ত হতে পারে, আপনি সিদ্ধান্ত নিতে নিম্নলিখিত ব্যবহারের ক্ষেত্রে ব্যবহার করতে পারেন।

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

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







static-methods