আমি এই শব্দগুচ্ছটি আকাশের দিকে ছুঁড়ে ফেলা হচ্ছে শুনেছি এবং আমার কাছে তর্কগুলি পুরোপুরি উন্মাদ বলে মনে হচ্ছে (দুঃখিত আমি যদি এখানে স্ট্রোমেন করছি, এটি আমার উদ্দেশ্য নয়), সাধারণত এটি কিছুটা লাইন ধরে যায়:
সাধারণ কেস কী তা জানার আগে আপনি কোনও বিমূর্ততা তৈরি করতে চান না, অন্যথায় (1) আপনি আপনার বিমূর্তগুলিতে এমন জিনিস স্থাপন করতে পারেন যা সম্পর্কিত নয়, বা (২) গুরুত্বের বিষয় বাদ দেওয়া উচিত।
(1) আমার কাছে এই শব্দগুলি প্রোগ্রামারের মতো যথেষ্ট বাস্তববাদী নয়, তারা ধারণা নিয়েছে যে চূড়ান্ত প্রোগ্রামে জিনিসগুলি উপস্থিত থাকবে না, তাই তারা বিমূর্ততার একটি স্তরের সাথে কাজ করছে, সমস্যাটি নয় অকাল বিমূর্ততা, এটি অকাল সংকোচনের।
(২) গুরুত্বের বিষয় বাদ দেওয়া একটি জিনিস, এটি সম্পূর্ণরূপে সম্ভব এমন কিছু থেকে বাদ দেওয়া যায় যা পরে গুরুত্বপূর্ণ হয়ে দাঁড়ায়, আপনি যখন সন্ধান করবেন তখন এর সমাধানটি আপনার নিজস্ব মনস্তাত্ত্ববোধ এবং বর্জ্য সংস্থান নিয়ে আসে না you অনুমান করা হয়েছে ভুল, এটি ক্লায়েন্টের কাছ থেকে আরও তথ্য পাওয়ার জন্য।
আমাদের সর্বদা বিমূর্ততা থেকে শুরু করে কনক্রেশন পর্যন্ত কাজ করা উচিত কারণ এটি জিনিসগুলির সর্বাধিক বাস্তব উপায়, না অন্যদিকে।
যদি আমরা এটি না করি তবে আমরা ক্লায়েন্টদের ভুল বোঝাবুঝি এবং এমন কিছু তৈরি করার ঝুঁকি নিয়ে থাকি যা পরিবর্তিত হওয়া দরকার তবে আমরা যদি ক্লায়েন্টদের নিজস্ব ভাষায় নির্ধারিত বিমূর্ততাগুলি তৈরি করি তবে আমরা কখনই এই ঝুঁকিটিকে আঘাত করব না (কমপক্ষে কোথাও নেওয়ার সম্ভাবনা খুব কমই নেই) কিছুটা সংক্ষেপে অন্ধকারে একটি গুলি), হ্যাঁ এটি সম্ভব ক্লায়েন্টরা বিশদ সম্পর্কে তাদের মন পরিবর্তন করতে পারে, তবে তারা যেগুলি যে বিমূর্ততাগুলি ব্যবহার করতে চায় তা মূলত যোগাযোগ করে যা তারা চায় এখনও বৈধ হতে পারে।
এখানে একটি উদাহরণ দেওয়া যাক, একজন ক্লায়েন্ট আপনার আইটেম ব্যাগিং রোবট তৈরি করতে চান:
public abstract class BaggingRobot() {
private Collection<Item> items;
public abstract void bag(Item item);
}
আমরা জানি না এমন জিনিসগুলির সাথে আরও বিশদে না গিয়ে ক্লায়েন্ট ব্যবহৃত বিমূর্ততা থেকে কিছু তৈরি করছি। এটি অত্যন্ত নমনীয়, আমি এটিকে "অকাল বিমূর্ততা" বলা হয়েছি যখন বাস্তবে ব্যাগিং কীভাবে কার্যকর করা হয়েছিল তা অনুমান করা আরও অকাল হতে পারে, ক্লায়েন্টের সাথে আলোচনার পরে বলতে পারি যে তারা একবারে একাধিক আইটেম পেতে পারে বলে মনে করেন । আমার ক্লাসটি আপডেট করার জন্য আমাকে যা করতে হবে তা হ'ল স্বাক্ষরটি পরিবর্তন করতে হবে, তবে যে কেউ নীচে আপ শুরু করেছেন তার পক্ষে একটি বড় সিস্টেমের ওভারহল জড়িত থাকতে পারে।
অকাল বিমূর্তকরণের মতো কোনও জিনিস নেই, কেবল অকাল সঙ্কোচন। এই বক্তব্যটি কী ভুল? আমার যুক্তিতে ত্রুটিগুলি কোথায়? ধন্যবাদ।