බත් උයමුද සොෆ්ට්වෙයාර් එකෙන් ( design patterns )
ඉස්සෙල්ලම කියන්න ඕනේ මගේ මතය හැටියට කෝඩ් කරනවා කියන්නේ programming නෙමේ. කරන එක පිළිවෙලකට ලස්සනට තේරුම් ගන්න පුළුවන් වෙන්න කරන්න ඕනේ නැත්නම්
අපි එක්ක වැඩ කරන අනික් අයගෙන් කුණුහරප එහෙම අහගන්න පුළුවන්. මම කියලා දෙන්න යන්නේ programming කරන හැටි නෙමෙයි. ටිකක් විතර advance ටිකක්.
ඉස්සෙල්ලම කියන්න ඕනේ මේවා මම class ගිහින් ඉගෙන ගත්ත ඒවා නෙමෙයි. තනියම ඉගෙන ගත්ත ඒවා , එක නිසා කිසිම stranded එකක් නැතුව ඇති. වැරදි ඇත්නම් හදන මෙන් ඉල්ලා සිටිමි.
මෙන්න ප්රශ්නේ ,
කඩයක් තියෙනවා . මේක ඇවිත් කෑම කඩයක්. වෙන කෑම කඩයක් වගේ නෙමෙයි. බත් වර්ග ගොඩක් තියෙනවා, එළවලු වර්ග ගොඩක් තියෙනවා.
ඔයා මේකට හදනවා සොෆ්ට් එකක්. ඔයාගේ සොෆ්ට් එක කරන්නේ බිල හදලා ප්රින්ට් කරන එක.
මේකේ ගාන හැදෙන්නේ ඔයා ගන්න බත් වර්ගයයි , එළවලු වර්ග ගනනටයි. එකෙත් එක එක එළවලු වර්ගේ එක එක ගණන්.
දැන් හදන්න සොෆ්ට් එක.
හරි දැන් කොහොමද හරියටම මේක හදන්නේ. මේකට කියන්නේ The Decorator Pattern එක කියලා . මුල ඉදන් අගටම කියවන්න හිමින්. නොතේරෙන තැන් අහන්න
මම හදා ගන්නවා Items කියලා interface එකක් එකේ තියෙන්නේ method දෙකයි . එකක් cost අනික getDescription.
ඊට පස්සේ මම හදා ගන්නවා බත් වර්ග වලට classes. සම්බා , බාස්මති , කැකුළු මේ බත් වර්ග වලට මම classes තුනක් හදාගන්නවා. මේ හැම එකක් ම
Items interface එක implements කරලා. ඒ කියන්නේ මේ බත් වර්ග හැම class එකකම cost & getDescription method දෙක තියෙනවා.
ඊළගට මම කරන්නේ cost method එකයි getDescription method දෙක override කරනවා තමන්ට ඕන විදියට.
මේ class එකේ බත් ජාතිය සම්බනේ ඒකනිසා getDescription එකේදී සම්බා කියල return කරනවා. cost method එකේදී රුපියල් 40යි කියලා return කරනවා.
දැක්කනේ පොඩි සින් එකක් කරේ.
දැන් තියෙන්නේ මේ වගේම තව class දෙක තුනක් හදාගන්න එක.
හරි නේ මේ තියෙන්නේ මගේ class තුන. මේවගේ වෙනස් වෙන්නේ cost එකේදී return කරන ගානයි getDescription එකේදී return කරන value එකයි වෙනස් එච්චරයි.
දැන් හදාගන්න යන්නේ එළවලු ටික . මේකත් කලින් වගේමයි. පොඩි වෙනසයි තියෙන්නේ
කලින් බත් වර්ග class වලට අමතරව තව Items කියන interface එකේ object එකකුත් තියෙනවා. තව constructor එකේදී මම ඒ object එකට parameter එකේ තියෙන value එක assign කරනවා.
දැන් cost එක method override කරන කොට එලවලුවට අදාළ මිල return කරනවා බත් වල වගේම Items කියන object එකේ තියෙන cost method එකත් call කරනවා.
getDescription එකත් එහෙමම තමයි .
මේ බලන්න
මන් මේ වගේ තව එළවලු වරිග 4k හදාගන්න යන්නේ.
ඒ හතරේ කලින් වගේම තමයි cost එකයි getDescription එකයි විතරයි වෙනස්.
හරි දැන් බත් ටික බෙදන්න යන්නේ.
මුලින්ම කරන්නේ ඕන කරන බත් ජාතියේ object එකක් හදාගන්නවා .
ඊට පස්සේ ඕන කරන එළවලු ජාති ටිකේ objectහදනවා . එත් මතකයි නේ එළවලු වල constructor එකේ parameter එකක් තියෙනවා . අපි කරන්න ඕනේ ඒ parameter එකට අපි හදාගත්ත
බත් ජාතියේ object එක pass කරනවා . එකෙන් return කරන value එක assign කර ගන්නේ ඒ object එකට මයි. තේරුනේ නැත්නම් code එක බලන්න .
අන්තිමට කරන්නේ object එකේ cost method එක call කරන එක .එතකොට ඔයාගේ බත් එකේ ගානයි ඔයාදාපු එළවලු වල ගානයි ඔක්කොම එකතු වෙලා උත්තරේ එනවා. getDescription එක
call කරොත් විස්තරේ එයි.
output
project link :: Download
මමයි ලිව්වේ , ෆොටෝ ගැහුවේ . කෝඩ් ගැහුවේ , upload කරේ
අපි එක්ක වැඩ කරන අනික් අයගෙන් කුණුහරප එහෙම අහගන්න පුළුවන්. මම කියලා දෙන්න යන්නේ programming කරන හැටි නෙමෙයි. ටිකක් විතර advance ටිකක්.
ඉස්සෙල්ලම කියන්න ඕනේ මේවා මම class ගිහින් ඉගෙන ගත්ත ඒවා නෙමෙයි. තනියම ඉගෙන ගත්ත ඒවා , එක නිසා කිසිම stranded එකක් නැතුව ඇති. වැරදි ඇත්නම් හදන මෙන් ඉල්ලා සිටිමි.
මෙන්න ප්රශ්නේ ,
කඩයක් තියෙනවා . මේක ඇවිත් කෑම කඩයක්. වෙන කෑම කඩයක් වගේ නෙමෙයි. බත් වර්ග ගොඩක් තියෙනවා, එළවලු වර්ග ගොඩක් තියෙනවා.
ඔයා මේකට හදනවා සොෆ්ට් එකක්. ඔයාගේ සොෆ්ට් එක කරන්නේ බිල හදලා ප්රින්ට් කරන එක.
මේකේ ගාන හැදෙන්නේ ඔයා ගන්න බත් වර්ගයයි , එළවලු වර්ග ගනනටයි. එකෙත් එක එක එළවලු වර්ගේ එක එක ගණන්.
දැන් හදන්න සොෆ්ට් එක.
හරි දැන් කොහොමද හරියටම මේක හදන්නේ. මේකට කියන්නේ The Decorator Pattern එක කියලා . මුල ඉදන් අගටම කියවන්න හිමින්. නොතේරෙන තැන් අහන්න
මම හදා ගන්නවා Items කියලා interface එකක් එකේ තියෙන්නේ method දෙකයි . එකක් cost අනික getDescription.
ඊට පස්සේ මම හදා ගන්නවා බත් වර්ග වලට classes. සම්බා , බාස්මති , කැකුළු මේ බත් වර්ග වලට මම classes තුනක් හදාගන්නවා. මේ හැම එකක් ම
Items interface එක implements කරලා. ඒ කියන්නේ මේ බත් වර්ග හැම class එකකම cost & getDescription method දෙක තියෙනවා.
ඊළගට මම කරන්නේ cost method එකයි getDescription method දෙක override කරනවා තමන්ට ඕන විදියට.
මේ class එකේ බත් ජාතිය සම්බනේ ඒකනිසා getDescription එකේදී සම්බා කියල return කරනවා. cost method එකේදී රුපියල් 40යි කියලා return කරනවා.
දැක්කනේ පොඩි සින් එකක් කරේ.
දැන් තියෙන්නේ මේ වගේම තව class දෙක තුනක් හදාගන්න එක.
හරි නේ මේ තියෙන්නේ මගේ class තුන. මේවගේ වෙනස් වෙන්නේ cost එකේදී return කරන ගානයි getDescription එකේදී return කරන value එකයි වෙනස් එච්චරයි.
දැන් හදාගන්න යන්නේ එළවලු ටික . මේකත් කලින් වගේමයි. පොඩි වෙනසයි තියෙන්නේ
කලින් බත් වර්ග class වලට අමතරව තව Items කියන interface එකේ object එකකුත් තියෙනවා. තව constructor එකේදී මම ඒ object එකට parameter එකේ තියෙන value එක assign කරනවා.
දැන් cost එක method override කරන කොට එලවලුවට අදාළ මිල return කරනවා බත් වල වගේම Items කියන object එකේ තියෙන cost method එකත් call කරනවා.
getDescription එකත් එහෙමම තමයි .
මේ බලන්න
මන් මේ වගේ තව එළවලු වරිග 4k හදාගන්න යන්නේ.
ඒ හතරේ කලින් වගේම තමයි cost එකයි getDescription එකයි විතරයි වෙනස්.
හරි දැන් බත් ටික බෙදන්න යන්නේ.
මුලින්ම කරන්නේ ඕන කරන බත් ජාතියේ object එකක් හදාගන්නවා .
ඊට පස්සේ ඕන කරන එළවලු ජාති ටිකේ objectහදනවා . එත් මතකයි නේ එළවලු වල constructor එකේ parameter එකක් තියෙනවා . අපි කරන්න ඕනේ ඒ parameter එකට අපි හදාගත්ත
බත් ජාතියේ object එක pass කරනවා . එකෙන් return කරන value එක assign කර ගන්නේ ඒ object එකට මයි. තේරුනේ නැත්නම් code එක බලන්න .
අන්තිමට කරන්නේ object එකේ cost method එක call කරන එක .එතකොට ඔයාගේ බත් එකේ ගානයි ඔයාදාපු එළවලු වල ගානයි ඔක්කොම එකතු වෙලා උත්තරේ එනවා. getDescription එක
call කරොත් විස්තරේ එයි.
output
project link :: Download
මමයි ලිව්වේ , ෆොටෝ ගැහුවේ . කෝඩ් ගැහුවේ , upload කරේ

Last edited:





