Community project by students of the Faculty of Information Technology, University of Moratuwa, Sri Lanka.

Design Patterns Lesson 1 – සැලසුම්කරණ රටා හදුන්වා දීම (Introduction to Java design patterns)

Java Design Patterns

Lesson 1 – සැලසුම්කරණ රටා හදුන්වා දීම (Introduction to Java design patterns)

ඩිසයින් පැටර්න්ස් කියන්නෙ පලපුරුදු වස්තු පාදක(Object Oriented) මෘදුකාංග ඉංජිනේරුවන්(Software Engineers) විසින් භාවිතා කරන ඉතා දියුණු ශිල්ප ක්‍රමයන්ය . ඇත්තෙන්ම මේ ඩිසයින් පැටර්න්ස් කියන්නෙ එම මෘදුකාංග ඉංජිනේරුවන්ට ඔවුන්ගේ විවිධ මෘදුකාංග නිර්මාණයන් කරන අතරවාරයේදී මතු වූ ප්‍රශ්ණ වලට විසදුම් ලෙස භාවිත කරන ලද විසදුම් ය.

එම ක්‍රම ශිල්ප කාලයක් තිස්සේ විවිධ මෘදුකාංග ඉංජිනේරුවන් මගින් පරීක්ෂණයට භාජනය වෙලා එය දැන් වෙනම විෂයක් වශයෙන් මෘදුකාංග දියුණු කිරීමේ දී භාවිත වෙනවා.

 

පළමුවෙන්ම කියන්න ඕන මෙම පාඩම් මාලාව හැදෑරීමට ඔබ හට ජාවා ක්‍රමලේඛණය පිළිබදව හොද දැනීමක් තිබිය යුතුයි. මන්ද මෙහි ඇති යම් යම් උදාහරණ දක්වන්නේ ජාවා භාෂාව යොදාගෙනයි. මේ නිසා ඔබගේ ජාවා පිළිබද දැනුම අඩුයි යැයි ඔබට හැගෙනවා නම්, පළමුව ඔබ අප වෙබ් අඩවියේ පළ වී ඇති ජාවා පාඩම් මාලාව හැදෑරිම සුදුසු යැයි මා සිතනවා.

පුංචි ඉතිහාස කතාවක් කියලා මං මේ පාඩම් මාලාව ආරම්භ කරන්න කැමතියි. ඒ තමයි මේ විෂය, එහෙමත් නැත්නම් මේ ඩිසයින් පැටර්න්ස් කියන සංකල්පය මුලින්ම මෘදුකාංග ක්ෂේත්‍රයට එන්නෙ 1994 දී එලිදක්වන ලද Design Patterns – Elements of Reusable Object-Oriented Software යන ග්‍රන්ථයත් සමගයි. මෙම ග්‍රන්ථයේ කතෘවරුන් වන Erich Gamma, Richard Helm, Ralph Johnson සහ John Vlissides යන අය Gang of Four(GOF) යන අන්වර්ථ නාමයකින් හදුන්වනවා.

මෙම හතර දෙනා ලියන ලද එම ග්‍රන්තයට අනුව, මේ ඩිසයින් පැටර්න්ස් කියන දේ මූලික වශයෙන් පහත දැක්වෙන වස්තු පාදක මූලධර්ම මත පදනම් වෙනවා. (එම ග්‍රන්ථයේ සදහන් පරිදි)

  1. Program to an interface not an implementation
  1. Favour object composition over inheritance

 

ඩිසයින් පැටර්න්ස් වල ප්‍රයෝජන මොනවාද?

  • Common platform for developers

සෑම මෘදුකාංග සංවර්ධකයකුටම පොදු වූ ප්ලැට්ෆෝමයක් ලෙස ක්‍රියා කිරීම. ඒ කියන්නේ ඩිසයින් පැටර්න්ස් මගින් යම් කාර්යයක් සිදු කර ගැනීමට සම්මත වූ ක්‍රියා පටිපාටියක් විස්තර කරනවා. මේ නිසා යම් කෙනෙකුට කියන්න පුලුවන් තමන් මෙම වැඩසටහන සාදා තිබෙන්නේ කිසියම් ඩිසයින් පැටර්න්ස් එකකට අනුව බව. එවිට සෑම කෙනෙකුටම එය වටහා ගත හැකි වෙනවා.

 

  • Best Practices

මම මුලිනුත් සදහන් කළා ඩිසයින් පැටර්න්ස් කියන්නෙ කාලයක් තිස්සේ විවිධ මෘදුකාංග ඉංජිනේරුවන් මගින් පරීක්ෂණයට භාජනය වී නිර්මාණය වූ විෂයක් කියලා. ඒ කියන්නෙ මෙමගින් විස්තර කෙරෙන්නෙ ඉතා හොද ශිල්ප ක්‍රමයන්ය(භාවිතයන්).

 

ඩිසයින් පැටර්න්ස් වර්ග

මම කලින් සදහන් කල Design Patterns – Elements of Reusable Object-Oriented Software යන ග්‍රන්තයට අනුව ඩිසයින් පැටර්න්ස් 23ක් තිබෙනවා. අත්තෙන්ම මේ ඩිසයින් පැටර්න්ස් 23 ඔබ දන්නවා කියන්නේ මේ පාඩම ඉවරයි කියන එක. මේ පාඩම් මාලාවෙන් විස්තර කරන්නේ එකී ඩිසයින් පැටර්න්ස් 23 ගැන හොද අවබෝධයක් ඔබ හට ලබා දීමයි.

 

මෙම ඩිසයින් පැටර්න්ස් 23 ප්‍රධාන වශයෙන් වර්ග 3කට බෙදා දක්වන්න පුලුවන්. ඒ පහත සදහන් ආකාරයටයි.

  • Creational Patterns

මෙම පැටර්න්ස් වලින් දැක්වෙන්නේ වස්තු(Objects) නිර්මාණය කරන ආකාරයන් නැත්නම් විධි ගැනයි.  මෙහිදී වස්තු නිර්මාණය සිදුකිරීමේදී new keyword එක භාවිත නොකර නිර්මාණයට භාවිත වන තර්කය සගවා අදාල අවස්තාවට සරිලන පරිදි නම්‍යශීලී ක්‍රියා පටිපාටියක් යොදා ගන්නවා. ඇත්තෙන්ම මෙය ඔබට ඉතා හොදින් පැහැදිලි වන්නේ මෙම වර්ගයට අයත් ඩිසයින් පැටර්න් එකක් ඉගෙන ගත්තට පසුවයි.

 

  • Structural Patterns

මෙම ඩිසයින් පැටර්න් වර්ග මගින් සැලකිල්ලට ගැනෙන්නේ class සහ object composition ගැනයි. Inheritance(ආවේණිගත වීම) යන සංකල්පය යොදාගෙන අතුරුමුහුණත්(Interface) නිර්මාණය සහ වස්තු(Object) නිර්මාණයට ක්‍රම විග්‍රහ කිරීම මෙමගින් සිදුවේ.

 

  • Behavioural Patterns

මෙම ඩිසයින් පැටර්න් වර්ග මගින් වස්තු එකිනෙක අතර සන්නිවේදනය සිදුවන ආකාරයන් ගැන සැලකිල්ලට ගැනේ.

 

මෙම ඩිසයින් පැටර්න් 23ට අමතරව තවත් ඕනෑතරම් ඩිසයින් පැටර්න් වර්ග තිබේ. නමුත් ජාව ක්‍රමලේඛණයේදී භාවිත වන මෙම ප්‍රධාන ඩිසයින් පැටර්න් 23 ගැන හොද අවබෝධයක් තිබේ නම් ඔබට අනෙක් සෑම එකක් ගැනම තනිව ඉගෙන ගැනීමට හැකියාව තිබේ. එසේ නම් අපි ඊළග පාඩමේ සිට මෙම ඩිසයින් පැටර්න් 23 එකින් එක විස්තර වශයෙන් ඉගෙන ගනිමු.

Leave a Reply

Your email address will not be published. Required fields are marked *