আমি এটিকে আর্কিটেকচারের গন্ধ হিসাবে বিবেচনা করব যে আপডেটডেটা সম্ভবত কোনও 'পরিষেবা' শ্রেণীর অন্তর্গত।
যেখানে ডেটা একটি অ্যাপল। যেখানে অ্যাপলএডাপ্টার হ'ল পরিষেবা / ব্যবসায়-বুদ্ধি শ্রেণি। যেখানে আপেলস সার্ভিস হ'ল একটি অ্যাপলএডাপ্টারের একক রেফারেন্স যা বর্তমান পদ্ধতির বাইরে রয়েছে exists
private static volatile AppleAdapter _appleService = null;
private static object _appleServiceLock = new object();
private AppleAdapter AppleService
{
get
{
if (_appleService == null)
{
lock (_appleServiceLock)
{
if (_appleService == null)
_appleService = new AppleAdapter();
}
}
return _appleService;
}
}
public SomeAppleRelatedMethod(Apple apple)
{
AppleService.UpdateData(apple);
}
আপনি যা করছেন তা অগত্যা ভুল বলে আমি মনে করি না তবে যদি স্যামডাটাএডাপ্টার সত্যই কোনও ধরণের স্টেটলেস ব্যবসায়িক পরিষেবার প্রতিনিধিত্ব করে তবে একটি সিঙ্গলটনই এটির জন্য সেরা অনুশীলন হবে। আশা করি এইটি কাজ করবে! প্রদত্ত উদাহরণটি হ'ল _ অ্যাপল সার্ভিসের কোনও ঝোঁক না থাকলে তা নিশ্চিত করার অভিনব উপায় হ'ল যদি একই সময়ে দু'জন বা তার বেশি থ্রেড দ্বারা একই সময়ে দু'টি নাল এবং অ্যাক্সেস করা হয়ে থাকে।
তুমি কি জান? যদি সোমারডেটাএডাপ্টার কোনও এডিও আইডিবিডাটা অ্যাডাপ্টার হয় (যা এটি প্রায় অবশ্যই) তবে এই পুরো প্রতিক্রিয়াটিকে উপেক্ষা করুন!
: P: P
আমার কাছে মূল প্রশ্নের সাথে একটি মন্তব্য যুক্ত করার অনুমতি নেই, তবে আপনি যদি এই কোডটি বিদ্যমান তা নির্দিষ্ট করতে পারেন।
যদি এই কোডটি একটি আইডিবিডাটা অ্যাডাপ্টারের একটি কাস্টম প্রয়োগের প্রতিনিধিত্ব করে, এবং আপডেটডেটা কোনও আইডিবি সংযোগ, আইডিবিকম্যান্ড তৈরি করছে এবং এগুলি সমস্ত পর্দার আড়ালে রেখে দেয়, তবে আমি কোনও কোড গন্ধ বিবেচনা করব না কারণ এখন আমরা স্ট্রিম এবং অন্যান্য বিষয়ে কথা বলছি আমরা সেগুলি ব্যবহার করার পরে জিনিসগুলি নিষ্পত্তি করা দরকার।