ধরা যাক আমার একটি কেস ক্লাস রয়েছে যা বিভিন্ন সামাজিক নেটওয়ার্কের ব্যক্তিত্ব, ব্যক্তির প্রতিনিধিত্ব করে। এই শ্রেণীর উদাহরণগুলি সম্পূর্ণরূপে অপরিবর্তনীয়, এবং অব্যাহত সংগ্রহগুলিতে অনুষ্ঠিত হয়, অবশেষে একজন আক্কা অভিনেতা দ্বারা সংশোধন করা।
এখন, আমার অনেকগুলি ক্ষেত্রের সাথে কেস ক্লাস রয়েছে এবং আমি একটি বার্তা পেয়েছি যা বলছে আমাকে অবশ্যই একটি ক্ষেত্র আপডেট করতে হবে, এরকম কিছু:
case class Persona(serviceName : String,
serviceId : String,
sentMessages : Set[String])
// Somewhere deep in an actor
val newPersona = Persona(existingPersona.serviceName,
existingPersona.serviceId,
existingPersona.sentMessages + newMessage)
লক্ষ্য করুন আমাকে সমস্ত ক্ষেত্র নির্দিষ্ট করতে হবে, যদিও কেবলমাত্র একটি পরিবর্তন রয়েছে। যে সমস্ত ক্ষেত্র পরিবর্তন হয় না তা নির্দিষ্ট করে না করে কি বিদ্যমান পার্সোনাকে ক্লোন করার এবং শুধুমাত্র একটি ক্ষেত্র প্রতিস্থাপন করার কোনও উপায় আছে? আমি কি এটি বৈশিষ্ট্য হিসাবে লিখতে এবং এটি আমার সমস্ত কেস ক্লাসের জন্য ব্যবহার করতে পারি?
পার্সোনা যদি মানচিত্রের মতো উদাহরণ হয় তবে এটি করা সহজ।