আমার একটি বড় অবজেক্ট রয়েছে:
class BigObject{
public int Id {get;set;}
public string FieldA {get;set;}
// ...
public string FieldZ {get;set;}
}
এবং একটি বিশেষজ্ঞ, ডিটিও-এর মতো অবজেক্ট:
class SmallObject{
public int Id {get;set;}
public EnumType Type {get;set;}
public string FieldC {get;set;}
public string FieldN {get;set;}
}
আমি ব্যক্তিগতভাবে স্পষ্টভাবে বিগঅবজেক্টকে স্মলবজেক্টে কাস্ট করার ধারণা পেয়েছি - এটি একতরফা, ডেটা-হারাতে যাওয়া অপারেশন - তা খুব স্বজ্ঞাত এবং পাঠযোগ্য knowing
var small = (SmallObject) bigOne;
passSmallObjectToSomeone(small);
এটি সুস্পষ্ট অপারেটর ব্যবহার করে প্রয়োগ করা হয়েছে:
public static explicit operator SmallObject(BigObject big){
return new SmallObject{
Id = big.Id,
FieldC = big.FieldC,
FieldN = big.FieldN,
EnumType = MyEnum.BigObjectSpecific
};
}
এখন, আমি পদ্ধতি SmallObjectFactory
সহ একটি ক্লাস তৈরি FromBigObject(BigObject big)
করতে পারি, এটি একই কাজ করবে, এটি নির্ভরতা ইনজেকশনে যুক্ত করতে এবং যখন প্রয়োজন হবে তখন এটি কল করবে ... তবে আমার কাছে এটি আরও বেশি জটিল এবং অপ্রয়োজনীয় বলে মনে হয়।
পিএস আমি নিশ্চিত নই যে এটি প্রাসঙ্গিক কিনা, তবে এমন কিছু থাকবে OtherBigObject
যা রূপান্তরিত করতে সক্ষম হবে SmallObject
, আলাদা করে সেট করে EnumType
।
.ToSmallObject()
পদ্ধতি : (বা GetSmallObject()
) সম্পর্কে আমি কোনওভাবেই ভাবি নি । একটি ক্ষণিকের কারণটি - আমি জানতাম আমার চিন্তাভাবনায় কিছু ভুল আছে, তাই আমি আপনাকে বলছি :)
ToSmallObject
পদ্ধতির ধারণার সাথে একত্রিত হলে ।