এই উদাহরণটি Android-এ পার্সেল সক্ষম এবং সিরিয়ালাইজেবলের মধ্যে পার্থক্য দেখায়
ক্রমিকযোগ্য
সিরিয়ালাইজেবল একটি চিহ্নিতযোগ্য ইন্টারফেস বা আমরা খালি ইন্টারফেস হিসাবে কল করতে পারি। এটির কোনো প্রাক-বাস্তবায়িত পদ্ধতি নেই। সিরিয়ালাইজেবল অবজেক্টকে বাইট স্ট্রীমে রূপান্তর করতে যাচ্ছে। সুতরাং ব্যবহারকারী একটি কার্যকলাপের মধ্যে ডেটা অন্য কার্যকলাপে প্রেরণ করতে পারে। সিরিয়ালাইজেবলের প্রধান সুবিধা হল ডেটা তৈরি করা এবং পাস করা খুবই সহজ কিন্তু পার্সেলেবলের তুলনায় এটি একটি ধীর প্রক্রিয়া।
নীচে দেখানো হিসাবে সিরিয়ালাইজেবলের একটি সহজ উদাহরণ –
import java.io.Serializable; class serializableObject implements Serializable { String name; public serializableObject(String name) { this.name = name; } public String getName() { return name; } }
পার্সেলেবল
পার্সেল সক্ষম সিরিয়ালাইজেবল তুলনায় দ্রুত. পার্সেল সক্ষম বস্তুকে বাইট স্ট্রীমে রূপান্তর করতে এবং দুটি ক্রিয়াকলাপের মধ্যে ডেটা পাস করতে চলেছে। পার্সেল সক্ষম কোড লেখা সিরিয়ালাইজেশনের তুলনায় একটু জটিল। দুটি ক্রিয়াকলাপের মধ্যে ডেটা পাস করার সময় এটি আরও টেম্প অবজেক্ট তৈরি করে না।
পার্সেল সক্ষম এর একটি সহজ উদাহরণ নীচে দেখানো হয়েছে –
import android.os.Parcel; import android.os.Parcelable; class parcleObject implements Parcelable { private String name; protected parcleObject(Parcel in) { this.name = in.readString(); } public parcleObject(String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static final Creator<parcleObject> CREATOR = new Creator<parcleObject>() { @Override public parcleObject createFromParcel(Parcel in) { return new parcleObject(in); } @Override public parcleObject[] newArray(int size) { return new parcleObject[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.name); } }