ඔබේ යෙදුමට MySQL, PostgreSQL, MongoDB වැනි දත්ත ගබඩා බහුලව භාවිතා කරනවා නම්, ඒවාට අනුව විවිධ වස්තු (query, transaction, updater) සෑදීම අත්යවශ්ය වේ. නමුත් සෑම සේවාවක්ම තමන්ට අවශ්ය වස්තුව තීරණය කරගන්නේ නම්, කේතය බරපතල වෙලා, නීතිවලට ගැළපෙන්නේ නැත.
ප්රශ්නය – සේවා පන්තියක් (UserService) එකම කාර්යයක් (user සෑදීම) කළත්, ඒ සමඟම දත්ත ගබඩාව තෝරන තීරණයක් ගන්නා නිසා Single Responsibility Principle (SRP) උල්ලංඝනය වේ. නව දත්ත ගබඩාවක් (Cassandra) එක්ක එකතු කළාම, Open/Closed Principle (OCP) ද උල්ලංඝනය වේ, මන්ද පවත්නා කේතය වෙනස් කරගත යුතුය.
මෙවැනි අවස්ථා වල Factory Pattern එක ප්රයෝජනවත් වේ. පළමුව Simple Factory එක හඳුන්වා දී, වස්තු නිර්මාණය වෙනම පන්තියකට (DatabaseFactory) මාරු කරමු. මෙය SRP නියමය සකස් කරන නමුත්, if‑statement එක තවමත් පවතින බැවින් OCP තවමත් උල්ලංඝනය වේ.
ඊළඟට Factory Method භාවිතා කරමු. දත්ත ගබඩා පන්තියම තමන්ගේ query වර්ගය නිර්මාණය කරන create_query යන අබ්ස්ට්රාක්ට් මාර්ගයක් අරගෙන, උපපන්තියන් ඒක ඉම්පලීමෙන් අදාළ query එක ලබා දෙයි. මෙයින් if‑statement එක ඉවත් කර, OCP පූර්ණයෙන්ම පුරනය කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ වැඩිහිටියන්, විශ්වවිද්යාල සිසුන්, තාක්ෂණ ආරම්භකයන්ට මෙම රූපකයන් පිළිබඳ අවබෝධය තිබීම අතිශය වැදගත්.
- කාර්ය සාධනය වැඩිදියුණු කිරීම: නිවැරදි Factory Pattern එක භාවිතා කරලා, කේතය පැහැදිලි, පරිහරණය සුළු, නව දත්ත ගබඩා එකතු කිරීම පහසු වේ.
- ඉගෙනුම් වගකීම: SRP, OCP වැනි SOLID නීති අනුගමනය කිරීමෙන්, සිසුන්ට හොඳ OOP පදනමක් ගොඩනැගීමට හැකියාව ලැබේ.
- ව්යාපාරික වර්ධනය: කෝඩ් පදනම ස්ථාවරව තිබීම නිසා, ආයතනවල මෘදුකාංග සංවර්ධන කාලය කෙටි වේ, නවතම තාක්ෂණයන් සමඟ ඉක්මනින් ඒකාබද්ධ විය හැක.
ඉතින්, ඔබේ පද්ධතියට සුදුසු Factory රූපකය තෝරා ගැනීම, කේත ගුණාත්මකභාවය, නඩත්තු හැකියාව, හා ව්යාපාරික කාර්යක්ෂමතාවය වෙනස් කරයි.
අදම ඔබේ කේතයට නිවැරදි Factory රූපකය ඇතුළත් කර, පද්ධතියේ විශ්වාසය හා සාර්ථකත්වය ඉහළ නැංවීමට පටන් ගන්න.