ফ্যাক্টরি প্যাটার্ন ভোগটি "সি-স্টাইল" ভাষা (সি / সি ++, সি #, জাভা) এর কোডারদের মধ্যে প্রায় দ্বিধাদ্বন্ধীয় বিশ্বাস থেকে উদ্ভূত যে "নতুন" কীওয়ার্ডটি ব্যবহার খারাপ, এবং যেকোন মূল্যে (বা এগুলি এড়ানো উচিত) সর্বনিম্ন কেন্দ্রীভূত)। পরিবর্তে, এটি একক দায়িত্বের নীতি (এসআইএলআইডি এর "এস") এর একটি অতি-কঠোর ব্যাখ্যা থেকে এসেছে এবং নির্ভরতা বিপরীতমুখী মূলনীতি ("ডি") থেকেও এসেছে। সরলভাবে বলা হয়েছে, এসআরপি বলেছে যে আদর্শভাবে একটি কোড অবজেক্টের একটি "পরিবর্তনের কারণ" থাকতে হবে এবং কেবল একটিতে; সেই "পরিবর্তনের কারণ" হ'ল সেই অবজেক্টের কেন্দ্রীয় উদ্দেশ্য, কোডবেজে তার "দায়বদ্ধতা" এবং কোডে পরিবর্তনের প্রয়োজন এমন যে কোনও কিছুতে class শ্রেণীর ফাইলটি খোলার দরকার নেই। ডিআইপি আরও সহজ; একটি কোড অবজেক্টটি কখনই অন্য কংক্রিটের উপর নির্ভর করে না,
ঘটনাচক্রে, "নতুন" এবং একটি পাবলিক কনস্ট্রাক্টর ব্যবহার করে আপনি কলিং কোডটি একটি নির্দিষ্ট কংক্রিট শ্রেণীর একটি নির্দিষ্ট নির্মাণ পদ্ধতিতে সংযুক্ত করছেন। আপনার কোডটি এখন জানতে হবে যে একটি ক্লাস মাইফুওবজেক্ট বিদ্যমান এবং এর একটি নির্মাণকারী রয়েছে যা একটি স্ট্রিং এবং একটি ইনট নেয়। যদি সেই কনস্ট্রাক্টরকে আরও তথ্যের প্রয়োজন হয় তবে আপনি যে লেখালেখি করছেন সে তথ্য সহ তথ্যের জন্য কনস্ট্রাক্টরের সমস্ত ব্যবহার আপডেট করতে হবে, এবং তাই তাদের পাস করার জন্য বৈধ কিছু থাকা দরকার, এবং সুতরাং তাদের অবশ্যই থাকতে হবে এটি পেতে বা পরিবর্তন করা (গ্রাসকারী বস্তুগুলিতে আরও দায়িত্ব যুক্ত করা)। তদ্ব্যতীত, যদি মাইফুওবজেক্টটি কখনই বেটারফুওজেক্ট দ্বারা কোডবেজে প্রতিস্থাপন করা হয়, পুরানো শ্রেণীর সমস্ত ব্যবহারগুলি পুরানোটির পরিবর্তে নতুন অবজেক্টটি তৈরি করতে পরিবর্তন করতে হবে।
সুতরাং, পরিবর্তে, মাইফোঅবজেক্টের সমস্ত গ্রাহক সরাসরি "আইফুওবজেক্ট" এর উপর নির্ভরশীল হওয়া উচিত, যা মাইফুওজেক্ট সহ ক্লাস বাস্তবায়ন করার আচরণ সংজ্ঞায়িত করে। এখন, আইএফওঅবজেক্টের গ্রাহকরা কেবল একটি আইএফওওজেক্ট নির্মাণ করতে পারবেন না (নির্দিষ্ট কংক্রিট শ্রেণি একটি আইফোঅবজেক্ট, যা তাদের দরকার নেই তা জেনেও না), পরিবর্তে তাদের অবশ্যই একটি আইএফওওজেক্ট-বাস্তবায়নকারী শ্রেণি বা পদ্ধতির উদাহরণ দেওয়া উচিত বাইরে থেকে, অন্য কোনও অবজেক্টের দ্বারা, পরিস্থিতিটির জন্য কীভাবে সঠিক আইএফওওজেক্ট তৈরি করবেন তা জানার দায়িত্ব রয়েছে, যা আমাদের পার্লেন্সে সাধারণত কারখানা হিসাবে পরিচিত।
এখন, এখানে তত্ত্ব যেখানে বাস্তবের সাথে মিলিত হয়েছে; কোনও বস্তু সর্বদা সব ধরণের পরিবর্তনের জন্য কখনই বন্ধ করা যায় না । ঘটনাচক্রে, আইএফওঅবজেক্ট এখন কোডবেজে একটি অতিরিক্ত কোড অবজেক্ট, যা যখনই গ্রাহকগণের দ্বারা প্রয়োজন হয় বা আইএফওবজেক্টগুলির প্রয়োগের পরিবর্তিত হয় তখনই এটি অবশ্যই পরিবর্তন হয়। এই বিমূর্ততা জুড়ে অবজেক্টগুলি একে অপরের সাথে যেভাবে যোগাযোগ করে তা পরিবর্তনের সাথে জড়িত একটি নতুন স্তরের জটিলতার পরিচয় দেয়। এছাড়াও, ইন্টারফেসটি নিজেই একটি নতুন দ্বারা প্রতিস্থাপন করা হলে গ্রাহকদের এখনও পরিবর্তন করতে হবে এবং আরও গভীরভাবে।
একটি ভাল কোডার কীভাবে সলাইডের সাথে YAGNI ("আপনার দরকার নেই এটি প্রয়োজন") ভারসাম্য বজায় রাখতে পারে তা ডিজাইন বিশ্লেষণ করে এবং নির্দিষ্ট জায়গায় পরিবর্তিত হতে পারে এমন জায়গাগুলি সন্ধান করে, এবং তাদেরকে আরও বেশি সহনশীল বলে প্রতিস্থাপন করার মাধ্যমে পরিবর্তনের যে ধরন, কারণ সেই ক্ষেত্রে "আপনি হয় করত এটি প্রয়োজন"।