সর্বাধিক ব্যবহৃত ডিজাইনের প্যাটার্নটি কী? [বন্ধ]


24

আপনি কোন ডিজাইনের প্যাটার্নটিকে সবচেয়ে জনপ্রিয় বলে মনে করেন?


উভয়ই সম্ভব হলে ...
তামারা উইজসম্যান

"বহুবর্ষের পরিবর্তে স্যুইচ"?
mlvljr

@ বিগাউন: তারপরে আপনার সবচেয়ে বেশি পছন্দ হওয়া উত্তরটি "গ্রহণ" করা উচিত। আপনি যদি কোনও উত্তর পছন্দ না করেন তবে অনুগ্রহ করে একটি অনুদান দিন।
ম্যাকনিল

2
গঠনমূলক না হিসাবে বন্ধ করতে ভোট দিয়েছেন - এটি মূলত একটি সমীক্ষা। যদি কারও উদ্ধৃত করার অভিজ্ঞতাগত অধ্যয়ন না হয়, উত্তরগুলি সমস্ত অনুমান বা প্রিয় (বা অ-পছন্দসই) হবে এবং ভোটগুলি ব্যক্তিগত অনুভূতির প্রতিফলিত করবে। শেষ ফলাফলটি গভীরতার সাথে নকশার ধরণগুলির একটি তালিকা হবে। সুতরাং, গঠনমূলক নয়।
স্টিভেন এ। লো 21

@ স্টিভেন: আমি বেশ নিশ্চিত যে জে ঠিক ঠিক বিগ বলের সাথেই আছেন। :-)
তমারা উইজসম্যান

উত্তর:


39

আমি বেশ নিশ্চিত যে 'দ্য বিগ বল অফ মুড' সবচেয়ে সাধারণ। দুর্ভাগ্য আমাদের সকলের জন্য
http://en.wikipedia.org/wiki/Big_ball_of_mud


সম্মত হন, যখন আপনি একটি নতুন প্রকল্প শুরু করেন সবকিছু ঠিকঠাক এবং ডকুমেন্টেড হয়, তবে সময়সীমাটি এগিয়ে যাওয়ার সাথে সাথে এটি সমস্ত কাদামাটির বড় বলের মতো শেষ হয়
আর্টুরো মোলিনা

3
@ আরতুুরো - এটিই একটি সম্ভাব্য কারণ। অন্যান্য: 1) ছোট প্রকল্পটি অনভিজ্ঞ প্রোগ্রামার দ্বারা শুরু হয়েছিল যা অপ্রত্যাশিতভাবে সফল, এবং তারপরে এটির আসল উদ্দেশ্য ছাড়িয়ে। ২) অনভিজ্ঞ প্রোগ্রামারদের প্রবণতা রক্ষণাবেক্ষণের জন্য বরাদ্দ করা হয়, যার মূল নির্দেশিকা বা নির্দেশনা বা মূল আর্কিটেকচারের উপলব্ধি নেই, সুতরাং তারা কেবল স্টাফটি হ্যাক করে এবং এটি সিস্টেমের বয়স হিসাবে আরও খারাপ হয়। 3) দলটি ভুল প্রযুক্তি, বা একটি নতুন প্রযুক্তি ব্যবহার করে যা তারা অপরিচিত এবং একটি নতুন প্রকল্পে এটি খারাপভাবে ব্যবহার করে এবং এটি সময়সীমার আগেই ছড়িয়ে পড়ে :)
জে

1
LOL - আমি যদি আপনাকে আরও পয়েন্ট যুক্ত করতে পারি, আমি চাই। দুর্দান্ত (এবং দুঃখজনক) পর্যবেক্ষণ।
luis.espinal

25

এমভিসি এবং এর বৈচিত্রগুলি অবশ্যই শীর্ষ ডিজাইনের ধরণগুলির মধ্যে একটি।


2
আমি বলতে যাচ্ছিলাম যে ওপির প্রশ্নটি বরং নির্বোধ (আমি এখনও এটি বিশ্বাস করি)। তবে আপনার উত্তরটি বেশ সঠিক আইএমও। যদি এমন একটি প্যাটার্ন থাকে (এবং এর প্রকরণগুলি) যা বেশিরভাগ ক্ষেত্রে ধারাবাহিকভাবে ব্যবহৃত হয় তবে এটি এটি one আপনার উত্তরের জন্য +1।
luis.espinal

21

আপনি যদি গ্যাং-অফ-ফোর ডিজাইনের ধরণের কথা বলছেন তবে আমাকে সিঙ্গলটন বলতে হবে । এটি সত্যই দুঃখজনক একটি পরিস্থিতি - প্রায়শই যদি প্রোগ্রামাররা ডিজাইনের নিদর্শনগুলির যাদু সম্পর্কে শুনে এবং তারপর প্রথমটির পরে কেবল থামিয়ে দেয়।

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


2
এমনকি সিডেলটনকে অ্যান্টিপ্যাটার্ন হিসাবে বিবেচনা করার সময় আপনি আরও খারাপ হয়ে যান!
রিচার্ডড

1
@ রিচার্ডড, দুঃখের বিষয় যে লোকেরা যখন এটি না হয় তখন একে একে বিবেচনা করে, বা দুঃখের বিষয় যে মানুষ এটি বিরোধী ধাঁচে ব্যবহার করলে?
ম্যাট ওলেনিক

আমি যা বলতে চাইছি তা দুঃখজনক যে এটি এত জনপ্রিয় it মনে হয় এটি একটি ইন্টারভিউয়ের প্রিয়। সর্বশেষ যখন আমার সাক্ষাত্কার হয়েছিল আমাকে জিজ্ঞাসা করা হয়েছিল আমি কীভাবে একটি সিঙ্গলটনের কোড করব, এবং আমার প্রতিক্রিয়া ছিল যে আমি আমার পক্ষে এটি পরিচালনা করতে ইউনিটির মতো আইওসি ধারক ব্যবহার করব না।
রিচার্ডডো

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

@ জ্যাকো - আপনার কাছ থেকে আমার আলাদা কিছু নিতে হবে। আমি মনে করি সম্মিলিত, কৌশল এবং টেম্পলেট (এবং তাদের একাধিক পুনর্জন্ম) সিঙ্গেলটনের চেয়ে অনেক বেশি প্রচলিত হয়ে উঠেছে, বিশেষত যেহেতু আমরা গত এক দশক ধরে উত্তরাধিকারের চেয়ে কাঠামোগত রচনাকে কেন্দ্র করে চলেছি।
luis.espinal


7

প্রসাধক

কম্পোজিশনের মাধ্যমে রানটাইমের সময় কোনও বস্তুর কার্যকারিতা যুক্ত করুন। আমার ব্যক্তিগত প্রিয়।

সম্পাদনা: এছাড়াও কারখানা সম্ভবত সবচেয়ে সাধারণ এক।


5

অট্টালিকার সদরের বহির্ভাগ

টুইটার বা এসও এপিআইয়ের মতো কোনও আরইএসটি ইন্টারফেসের কথা ভাবেন। এটি একগুচ্ছ পিছনের জিনিসগুলি গোপন করছে যা কমপক্ষে টুইটারের ক্ষেত্রে ভয়াবহ জটিল হতে পারে।

আমি কি ডিপি টেবিলগুলি @ এপ্লক্লস্কের টুইটগুলি সঞ্চিত আছে তা যত্ন করি? এবং এটি একটি দ্রুত ক্যাশে আছে? এবং @ শেমনের এমন পাঠক সংখ্যা কম রয়েছে যে টুইটগুলি সর্বদা স্মরণে থাকে না? এটাই ফেকডের ম্যাজিক।


5

কৌশল প্যাটার্ন

আপনি যদি কখনও নির্ভরতা ইনজেকশন ব্যবহার করেন তবে আপনি কৌশলটির ধরণটি ব্যবহার করেছেন।


সম্মতি, টেমপ্লেট এবং সংমিশ্রণ ছাড়াও কৌশল (এবং তাদের একাধিক প্রকরণ এবং সংমিশ্রণ)
luis.espinal

5

কেন এখনও কেউ পুনরুক্তির কথা উল্লেখ করেনি? বিশেষত সমস্ত মানচিত্র যা জটিল ডেটা কাঠামো তৈরি করে ... এটি আমি সবচেয়ে বেশি ব্যবহার করি। বা আমরা সেই নিদর্শনগুলির বিষয়ে কথা বলছি যা আমরা আবার প্রয়োগ করি?


3

আমি অবাক হয়েছি কারও কারখানার নিদর্শনটির কথা কেউ উল্লেখ করেনি, আমার অভিজ্ঞতায় সেখানকার নিদর্শনগুলির মধ্যে সর্বাধিক ব্যবহৃত (এবং সবচেয়ে বেশি আপত্তিজনক) এক। যদি প্রথম না হয়, সম্ভবত সিঙ্গলটনটি প্রথম হওয়া উচিত, আমি ভাবতাম এটি খুব কাছাকাছি দ্বিতীয় হবে।


3

আমার পূর্ববর্তী উত্তরের সাথে আমি উত্তরাধিকারসূত্রে প্রাপ্ত আমার প্রানীর কাছ থেকে আমি আজ একটি নতুন যুক্ত করতে যাচ্ছি:

কপি / পেস্ট

ডিবাগ করার সময় আমি একই ধরণের 2 নামক ক্রিয়াকলাপের কোডিং কলের একটি টুকরোয় ছুটেছিলাম:

if(x)
   Func1
else
   Func2

Func1 এবং Func2 এর একই পরামিতি ছিল। আমি এগুলিকে টেনে এনে আলাদা করেছি, এবং ফানক 1 কল ফানক 3 এবং ফানক 2 কল ফান 4 ব্যতীত এগুলি 100% একই। আমি এগুলিকে টেনে এনে আলাদা করেছি। 100% একই, 1 লাইন বাদে। সুতরাং কোনও পূর্ববর্তী প্রোগ্রামার ঠিক 1 জায়গায় ব্যবহৃত 2 টি ব্যক্তিগত ফাংশনে ফ্ল্যাগ প্যারামিটার যুক্ত না করে দুটি 50-লাইন-নেস্টেড ফাংশনগুলি অনুলিপি করে আটকানোর সিদ্ধান্ত নিয়েছে। এটি আমাকে কাঁদতে চায়।


2

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


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

অবশ্যই, এই ক্ষেত্রেগুলির এটির প্রয়োজন নেই ... আপনি যখন কিছু কাজ করার জন্য সত্যিকভাবে একটি জিনিস প্রয়োজন, তখন সিনক্রোনাকলভাবে এবং থ্রেড নিরাপদ what একক শুধু কিছু স্ট্যাটিক ভেরিয়েবল রাষ্ট্র অধিষ্ঠিত জন্য নয়, এটা করতে বাস্তব কাজের সঙ্গে একটি বাস্তব বস্তু, ইত্যাদি এর
ক্রিস্টিয়ান

এটির জন্য প্রয়োজন দেখা কেবলমাত্র ডাটাবেস সংযোগ। এটি বলেছে যে কাজের জায়গায় এই প্রকল্পে প্রায় প্রতিটি "পরিষেবা" (পড়ুন: কারখানার সাথে সমান) শ্রেণি পিএইচপি $_SESSIONভেরিয়েবলে সঞ্চিত একক সিঙ্গলটন ।
তারকা

2

অনুবাদক

খুব কমই প্রয়োগ করা হয়, প্রায়শই ব্যবহৃত হয়। এক্সপ্যাথ, এক্সএসএলটি, রেজেক্স, জকিউয়ারি নির্বাচক ইত্যাদি


1

আমি অবাক হয়েছি এখনও কেউ "বিল্ডার" বলেনি। বা "অ্যাডাপ্টার"। উল্লিখিত অন্যগুলির মতো তারা সম্ভবত বিদেশী নয়, তবে আমি সেগুলি সর্বদা ব্যবহার করি। কারখানা এবং বিমূর্ত কারখানাও খুব সাধারণ (তবে তারা ইতিমধ্যে নেওয়া হয়েছে)।




0

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

আর্কিটেকচার্যালি, আমি উদ্যোগে এমভিসির পক্ষে যুক্তি দিয়েছি, এবং এমবেডেড জিনিসের স্টেট মেশিনের উপর ভিত্তি করে নিদর্শনগুলি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.