আমি প্রচুর কোড লিখি যাতে তিনটি বুনিয়াদি পদক্ষেপ জড়িত।
- কোথাও থেকে ডেটা পান।
- তথ্যটি রূপান্তর করুন।
- কোথাও এই তথ্য রাখুন।
আমি সাধারণত তিন ধরণের ক্লাস ব্যবহার করে শেষ করি - তাদের নিজ নিজ ডিজাইনের ধরণ দ্বারা অনুপ্রাণিত হয়ে।
- কারখানাগুলি - কিছু সংস্থান থেকে একটি অবজেক্ট তৈরি করা।
- মধ্যস্থতাকারী - কারখানাটি ব্যবহার করতে, রূপান্তরটি সম্পাদন করতে, তারপরে কমান্ডারটি ব্যবহার করুন।
- কমান্ডার - সেই ডেটা অন্য কোথাও রাখার জন্য।
আমার ক্লাসগুলি আমার কাছে বেশ ছোট, প্রায়শই একটি একক (সর্বজনীন) পদ্ধতি হিসাবে থাকে, যেমন ডেটা পান, ডেটা রূপান্তর করুন, কাজ করুন, ডেটা সংরক্ষণ করুন। এটি ক্লাসগুলির বিস্তারকে বাড়ে, তবে সাধারণভাবে এটি ভালভাবে কাজ করে।
আমি যখন পরীক্ষার দিকে আসি তখন যেখানে লড়াই করি আমি সেখানে কঠোরভাবে পরীক্ষা করবো। উদাহরণ স্বরূপ;
- কারখানা - ডিস্ক থেকে ফাইল পড়ে reads
- কমান্ডার - ডিস্কে ফাইল লিখে।
আমি অন্যটি ছাড়া একটি পরীক্ষা করতে পারি না। আমি ডিস্ক রিড / লিখতে অতিরিক্ত 'টেস্ট' কোড লিখতে পারি, তবে তারপরে আমি নিজেকে পুনরাবৃত্তি করছি।
নেটটি দেখার জন্য, ফাইল শ্রেণিটি একটি পৃথক পদ্ধতি গ্রহণ করে, এটি (আমার) কারখানা এবং কমান্ডারের দায়িত্বগুলি একত্রিত করে। এটি তৈরি, মুছুন, বিদ্যমান এবং সমস্ত এক জায়গায় পড়ার জন্য এতে ফাংশন রয়েছে।
নেট এবং একত্রিত - বিশেষত বহিরাগত সংস্থাগুলি যখন আমার ক্লাসগুলি একত্রে কাজ করার উদাহরণ অনুসরণ করা উচিত? কোডটি এটি এখনও মিলিত হয়েছে তবে এটি আরও ইচ্ছাকৃত - এটি পরীক্ষাগুলির পরিবর্তে মূল বাস্তবায়নে ঘটে at
আমার সমস্যাটি কি এখানে আমি একা দায়বদ্ধতার নীতিটি কিছুটা অতিমাত্রায় প্রয়োগ করেছি? আমার পড়ার লেখার জন্য আলাদা ক্লাস রয়েছে responsible যখন আমি একটি সম্মিলিত শ্রেণি রাখতে পারি যা কোনও নির্দিষ্ট সংস্থান, যেমন সিস্টেম ডিস্কের সাথে ডিল করার জন্য দায়বদ্ধ।
Looking at .Net, the File class takes a different approach, it combines the responsibilities (of my) factory and commander together. It has functions for Create, Delete, Exists, and Read all in one place.
- মনে রাখবেন যে আপনি "করণীয়" দিয়ে "দায়বদ্ধতা" কাটাচ্ছেন। একটি দায়িত্ব আরও একটি "উদ্বেগের ক্ষেত্রের মতো"। ফাইল শ্রেণীর দায়িত্ব ফাইল অপারেশন করছে।
File
সি # থেকে আপনার লাইব্রেরির একটি গুরুত্বপূর্ণ বিষয় হ'ল আমরা সকলেই জানি File
ক্লাসটি কেবল একটি ফ্যাসাদ হতে পারে, সমস্ত ফাইল ক্রিয়াকলাপকে এক জায়গায় - ক্লাসে রেখে দেয় তবে অভ্যন্তরীণভাবে আপনার অনুরূপ পাঠ / লেখার ক্লাস ব্যবহার করতে পারে যা আপনার পক্ষে হবে ফাইল হ্যান্ডলিংয়ের জন্য আরও জটিল যুক্তি রয়েছে। এই জাতীয় শ্রেণি (দ্য File
) এখনও এসআরপি মেনে চলবে, কারণ ফাইলসিস্টেমের সাথে প্রকৃতপক্ষে কাজ করার প্রক্রিয়াটি অন্য স্তরের পিছনে বিমূর্ত হবে - সম্ভবত একত্রিত ইন্টারফেসের সাথে। বলছে না এটি কেস, তবে এটি হতে পারে। :)