স্ট্যাটিক ইনার বিল্ডার ক্লাস ব্যবহারের সুবিধা


9

কোনও সংস্থার কোড নির্দেশিকা লেখার সময় আমি নিজেকে টেলিস্কোপিক কনস্ট্রাক্টরের পরিবর্তে কার্যকর জাভা থেকে বিল্ডার প্যাটার্নটি ব্যবহার করার পরামর্শ দিয়েছি ।

যাইহোক, এটি আরও কিছুটা চিন্তা করার পরে, অবশ্যই আরও মার্জিত সমাধান হ'ল কেবল বিল্ডার শ্রেণি অপসারণ করা এবং optionচ্ছিক যুক্তিযুক্ত অতিরিক্ত নির্মাতা অপসারণ করা remove

সুতরাং কেবলমাত্র প্রয়োজনীয় প্যারামিটার, সাধারণ গেটার / সেটটার সহ একটি নির্মাতা থাকুন এবং কোডটিতে মন্তব্য করুন। বাস্তবায়ন করার সময় শুধু yr অবজেক্টের একটি নতুন উদাহরণ তৈরি করুন তারপরে মানগুলি সেট করুন।

আমার আসল চিন্তাভাবনাটি হ'ল সুবিধাটি ছিল যে বিভ্রান্তিগুলি দূর করে যা পরামিতরগুলি alচ্ছিক এবং কোনটি প্রয়োজনীয় ছিল; তবে আসল উপকারটি পদ্ধতিটি চেইনিং / সাবলীল ইন্টারফেস ব্যবহার করে আসে।

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


আরও দেখুন stackoverflow.com/a/1953567/632951
Pacerier

উত্তর:


8

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

যদি আমি দেখতে পাই যে প্রচুর alচ্ছিক মান রয়েছে বা alচ্ছিক মানগুলির একটি বৃহত অনুপাত তাদের ডিফল্ট থেকে পরিবর্তিত হতে থাকে, তবে আমি বিল্ডার প্যাটার্নটি ব্যবহার করব (স্থির অভ্যন্তরীণ নির্মাতা বা অন্যান্য অনুরূপ নকশা)।

জোশ সাধারনত বেশ সুন্দর পরামর্শ দেয় - তার সম্পর্কে আমার সবচেয়ে ভাল লাগে পরামর্শটি খন্দকের কাছ থেকে আসে - তিনি নিজেকে স্বীকার করেন যে জাভার বিভিন্ন অংশ ডিজাইনে তিনি ভুল করেছিলেন এবং কার্যকর জাভা আংশিকভাবে তাঁর 'নিরাময়ের' মতো কথা :-)


1
কেন অভ্যন্তরীণ স্থির থাকতে হবে সে সম্পর্কে এটি কিছুই বলে না ...
জিমি হোফা

অপরিচ্ছন্নতা এবং পার্শ্ব প্রতিক্রিয়া মুক্ত এছাড়াও একটি লক্ষ্য।
মার্টিজ ভার্বার্গ

6

জোশ ব্লচের বিল্ডার প্যাটার্ন, অনেকটা জিওএফ বিল্ডার প্যাটার্নের মতো, চেইন কনস্ট্রাক্টরের দীর্ঘ তালিকা ছাড়াই প্রচুর ডিফল্ট ডেটা সহ একটি অপরিবর্তনীয় বস্তু তৈরির একটি উপায় সরবরাহ করে ।

আপনার যদি "প্রয়োজনীয় প্যারামিটারগুলি, সাধারণ গেটার্স / সেটারগুলি সমেত একটি কনস্ট্রাক্টর থাকে" তবে আপনার অবজেক্টটি আর পরিবর্তনযোগ্য নয়। অর্থাত। আপনি এটি ইনস্ট্যান্ট করার পরেও এটি পরিবর্তন করতে পারেন change

যদি তা আপনার পক্ষে সমস্যা না হয় তবে আপনার প্রথমে বিল্ডার প্যাটার্নের প্রয়োজন হবে না। যদি এটি সমস্যা হয় তবে আপনার সমাধানটি ত্রুটিযুক্ত।


আমি মনে করি না রচয়িতা প্যাটার্ন, এমনকি gof উদাহরণ উইকি তে পরিবর্তনশীলতা সাথে কিছু হয়েছে চপল হচ্ছে ... en.wikipedia.org/wiki/Builder_pattern#Java এছাড়াও, প্যাটার্ন সুবিধা আমি প্রশ্ন রূপরেখা হয়েছে।
নিমচিম্পস্কি

3
@ নিমচিম্পস্কি: মিউটেটেবল অবজেক্ট তৈরি করতে বিল্ডার প্যাটার্ন প্রয়োগ করা যেতে পারে কিনা তা বিবেচনায় নেই। প্রশ্ন হচ্ছে, আপনার উচিত? গেটার্স এবং সেটটাররা অনন্তকাল ধরে ছিল, যেখানে বস্তুগুলি পরিবর্তনযোগ্য হতে পারে এগুলি একেবারে দৃ solution় সমাধান, তবে মানুষ অবিচ্ছিন্ন অবজেক্ট তৈরির ক্ষেত্রে একটি সাধারণ সমস্যায় পড়েছিল: নির্মাতাদের অব্যবহারযোগ্য চেইন। নির্মাতা একটি সাধারণ সমাধান ছিল এবং এইভাবে যোগাযোগকে সহজ করার জন্য এটি একটি প্যাটার্নে পরিণত হয়েছিল।
pdr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.