අද මම මගේ යාළුවන්ට පැහැදිලි කරන්න යන්නෙ ඉතාමත් පහසුවෙන් තේරුම් ගන්න පුළුවන් design pattern එකක්. ඒ තමයි Singleton design pattern එක.මේ design pattern එක අයත් වෙන්නේ creational patterns කියන කාණ්ඩයට. object නිර්මාණය කරන්න හොඳ ක්රමයක් තමයි මෙයින් අපිට කියලා දෙන්නේ. අපි බලමු දැන් මොකක්දේ මේ singleton design pattern එක කියන්නෙ කියලා.
කෙටියෙන්ම විස්තර කරනවා නම් singleton design pattern එකෙන් අපි කරන්නේ අපි හදන class එකෙන් user ට අවස්ථාව දෙන්නේ එක object එකක් හදන්න විතරයි.තවත් විස්තර කරනවා නම් user class එකෙන් object එකක් refer කරන හැම අවස්ථාවකම user ට දෙන්නේ එකම එක static object එකක් විතරයි .ඒ කියන්නෙ මේ design pattern එක use කිරීමේ ප්රධාන අරමුණ තමයි සලකන ලද class එකකින් සැදෙන උපරිම object ගණන එකකට සීමා කිරීම.
ඔයාලට දැන් ප්රශ්නයක් ඇති ඇයි අපි සාදන object එකකට සිමා කරන්නේ කියලා. මම එක ඔයාලට උදාහරණයකින් පැහැදිලි කරන්නම්. අපි හිතමු අපි develop කරන desktop software එකකට database එක connect කරනවා කියලා. අපේ software එකේ එකම database එකකට user details view කරනකොට , ඒ වගේම new data add කරන හෙම වෙලාවකම software එකට database connection එකෙන් object එක ගානෙ හැදුනොත් එක අපේ software එකේ ගුණාත්මකභාවයට හොඳ මදි . අන්න ඒ වගේ අවස්ථාවලදී අපි මේ singleton කියන design pattern එක තමයි use කරන්නේ. මම ඒ ඔයාලට කිවේ singaleton design pattern එක practically භාවිත කරන අවස්ථාවක්.
අපි දැන් බලමු කොහොමද මේ singleton design pattern එක අපි implement කරන්නේ කියලා. class diagram මම දැන්නම්.
පියවර 1
මුලින්ම අපි SingleObject කියන class එක නිර්මාණය කරමු.
SingleObject.java
ඔයාලට පේනවා ඇති SingleObject කියන class එකේ constructor එකට private කියන access modifier එක භාවිත කරලා තියෙනවා. එහෙම constructor එක private කිරීමේ අරමුණ තමයි new කියන keyword එක use කරලා object නිර්මාණය කිරිමට තියෙන අවස්ථාව ඉවත් කිරීම.
තව ඔයාලට පේනවා ඇති private static instance එකක් හදල තියෙනවා.ඒ වගේම static instance එක access කරන්න getInstance() කියලා static method එකක් හදල තියෙනවා. අපි එහෙම static instance ,method හැදුවේ static දේවල් හැදෙන්නේ class එකකට එක බැගින් නිසා.
මම හිතනවා ඔයාලට මේ class එක ගෙන අවබෝධයක් දැන් ලැබෙන්න ඇති කියලා.අපි දන් 2වෙනි පියවරට යමු.
පියවර 2
දැන් SingletonPatternDemo කියන class එක නිර්මාණය කරමු.
SingletonPatternDemo.java
ඔයාලට පේනවා ඇති අපි සාමාන්යයෙන් object එකක හදන විදිහට නෙවෙයි SingleObject කියන class එකෙන් object එක හදල තියෙන්නේ. එකට හේතුව මම ඉහල පැහැදිලි කල. අපි new කියන keyword එක use කරලා object හදන්න පුළුවන් හැකියාව ඉවත් කලානේ constructor එක private කරලා. දැන් එහෙම object එකක් හැදුව නම් අපිට compile time error එකක් එනවා.
අපිට පුළුවන් getInstance() කියන method එක use කරලා object එක හදා ගන්න.
Output
මම හිතනවා ඔයාලට singleton design pattern එක ගෙන හොඳ අවබෝධයක් ලැබුන කියලා. අපි බලමු ඇත්තතටම එක object එකක්ම විතරක්ද හැදෙන්න අවස්ථාව දෙන්නේ කියලා මේ exercise එක කරලා. එතකොට ඔයාලට තවත් පැහැදිලිවෙයි කියලා මම හිතනවා.
SingletonPatternDemo.java
අපි මේ class එකේ object1 කියලයි object2 කියලයි instance object 2ක් හදල ඒවායේ object reference 2ත් වෙන වෙනම ප්රින්ට් කරලා තියෙනවා. අපි බලමු කොයි වගේ output එකක්ද ලැබෙන්නෙ කියලා අපිට.
Output
බලන්න object1,object2 කියලා reference 2ක් use කලත් අපිට ඒ 2ම object reference එක ඒකමයි output එක විදිහට ලැබිලා තියෙන්නේ.
singleton.SingleObject@15db9742 කියලයි 2ම ඇවිත් තියෙන්නේ.
ඉතින් යාලුවනේ දන් නම් ඔයාලට singleton design pattern එක හොඳටම තේරුම් යන්න ඇති. අපි ඊළඟ ලිපියෙන් MVC and singleton design patterns 2ම use කරලා project එකක කරන හැටි බලමු. එහෙනම් මගේ යාලුවනේ අපි ඊළඟ post එකෙන් හමුවෙමු...........................................



Comments
Post a Comment