Skip to main content

Design Patterns - Introduction

 
ඉතින් මගේ යාලුවනේ අද මම ඔයාලට ඉදිරිපත් කරන්න හදන්නේ Software Industrial එකට යන්න ඉන්න ඔයාලා සියළුම දෙනාට ගොඩක් වැදගත් වෙන ලිපියක්. ඒ තමයි Software Development Design Patterns. අපි design pattern එක විතරක් දැනගත්තට විතරක් නම් මදි යාලුවනේ. අපි කොහොමද ගැලපෙනම   design pattern එක තොර ගෙන  develop කරන software project එකට  ප්‍රයෝගිකව භාවිත කරන්නේ කොහොමද  කියන එකත් දැනගෙන ඉන්න ඕනේ අනිවාර්යෙන්. එතකොට තමයි අපිට සාර්ථක     Software Engineer කෙනෙක් වෙන්න පුළුවන් වෙන්නේ . මම java programming language එකෙන් design pattern එක implement කරන හැටි මුලින් කියනම්. පසුව C # programming language එකෙනුත් ඉදිරිපත් කරනම්. 

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


Design Patterns නිර්මාණය වෙලා තියෙන්නේ software engineers ලට  ඔවුන්ගේ විවිධ මෘදුකාංග නිර්මාණයන් කරන අතරවාරයේදී මතු වූ ප්‍රශ්ණ වලට විසදුම් ලෙස භාවිත කරන ලද විසදුම් ලෙසයි.
අපිට object oriented software engineers ලා විසින් භාවිතා කරන ඉතා දියුණු ශිල්ප ක්‍රමයන් කියලත් design patterns හඳුන්වන්න පුළුවන්. දැන්  එම ක්‍රම ශිල්ප කාලයක් තිස්සේ විවිධ software engineers මගින් පරීක්ෂණයට භාජනය වෙලා එය දැන් වෙනම විෂයක් වශයෙන් software develop  කිරීමේ දී භාවිත කරනවා .

design patterns ගෙන wikipedia මෙවැනි අදහසක් දරනවා.

අපි දැන් බලමු design patterns වර්ග මොනවද කියලා. java programming language  එක මුලික කරගෙන 
Patterns – Elements of Reusable Object-Oriented Software ග්‍රන්ථයේ සඳහන් වෙන පරිදි design patterns 23ක් පමණ තියෙනවා. ඒවා ප්‍රධාන වශයෙන් කොටස් 3ක්ත වෙන් වෙන්වා.

  • Creational  design patterns                                                                                               Objects නිර්මාණය කරන ආකාරයන් නැත්නම් විධි ගැන මෙමගින් විස්තර කරනවා. 
  1. Factory design pattern
  2. Abstract factory design pattern
  3. Singleton design pattern
  4. Builder design pattern 
  5. Prototype design pattern
  • Structural design patterns                                                                                                    මෙමගින් සැලකිල්ලට ගැනෙන්නේ class සහ object composition ගැනයි. Inheritanceයන සංකල්පය යොදාගෙන Interface නිර්මාණය සහ Object නිර්මාණයට ක්‍රම විග්‍රහ කිරීම මෙමගින් සිදුවේ.
  1. Adapter design pattern 
  2. Bridge design pattern 
  3. Filter design pattern 
  4. Composite design pattern 
  5. Decorator design pattern
  6. Facade design pattern 
  7. Flyweight design pattern
  8. Proxy design pattern 
  • Behavioural design patterns                                                                                    objects  එකිනෙක අතර සන්නිවේදනය සිදුවන ආකාරයන් ගැන සැලකිල්ලට ගනී.
  1. Chain of responsibility design pattern 
  2. Command design pattern 
  3. Interpreter design pattern 
  4. Iterator design pattern
  5. Mediator design pattern 
  6. Memento design pattern
  7. Obsever design pattern
  8. State design pattern 
  9. Strategy design pattern 
  10. MVC design pattern 
ඉතින් යාලුවනේ මම හිතනවා ඔයාලට design patterns ගෙන හැඳින්වීමක් මේ ලිපියෙන් ලැබෙන්න ඇති කියලා. අපි ඊළඟ post එකෙන් හමුවෙමු ...............................................




Comments

Post a Comment

Popular posts from this blog

Object Oriented Programming Lessons - Part 1 topics

ඉතින් යාලුවනේ ඔයාලට මම දැන් මම ඔයලට පැහැදිලි කිරිමට බලාපොරොත්තු වෙන OOP පාඩම් මාලාව ඔයාලට කියනම්. මම හිතනවා එක ඔයාලට පහසුවක් වෙයි කියල. මම කොටස් 2ක්ත තමයි මේ පාඩම් මාලාව ඉදිරිපත් කරන්න හිතන් ඉන්නේ. පලවෙනි කොටස මං දන් ඔයලට ඉදිරිපත් කරන්නම්. OOP -Introduction OOP -What is class & object OOP - What is constructor OOP - What is abstraction  OOP - What is encapsulation OOP - Default values and declaration Values OOP - What is method overloading OOP - What is constructor overloading OOP - What is method call by values OOP - What is method call by reference OOP - What is key word "this" OOP - What is static methods OOP - What is static attributes OOP - What is static initilizer OOP - What is static object initilizer OOP - What is object blocks OOP - What is inheritance rules OOP - What is multiple inheritance using interface OOP - What is super keyword vs this key word OOP - What is method overriding OOP - What is overriding rules OOP - What is polymop...

Welcome to my blog

ආයුබෝවන් මේක කියවන  හැම කෙනාටම... මම කැළුම් පෙරේරා , දැනට IIT Campus එකේ Software Engineering degree එක කරන ගමන් තමා මං ඉන්නේ. ඒ අතර මටත් හිතුනා blog එකක් කරන්න ඕනා කියලා. මේක technical blog එකක්. blog නම් හැමතැනම ඇති... හැමදෙනාටම හම්බ වෙලා ඇති.. හැමෝම කියවලත් ඇති . .. එත් මේක විශේෂ එකක්. දිගටම මේකේ posts කියවනකොට ඔයාලටම එක තේරේවි.. මේකෙදි මම ඔයාලට කියලා දෙන්න හිතන් ඉන්නේ Java, C#  ගෙන ප්‍රදාන වශයෙන්. එත් හැමෝම දන්නා දේවල් ගෙන නෙමෙයි. ගොඩක් අය දන්නා , දන්නව වුනාට වැඩක් කරගන්න තරම් දැනුමක් නැති , එත් industry එකේ වැඩ වලට ගොඩක් ප්‍රයෝජනවත් වෙන දේවල් කොහොමද කරන්නේ කියන එක තම මං සරලවම කියලා දෙන්න යන්නේ. OOP(Object Oriented Programming) concepts ඔයලා හැමෝම දන්නවා,ඉගෙනගෙන තියෙනවා. එත් ගොඩක් අයට OOP වල ප්‍රශ්න තියෙනවා. ඒ නිසා OOP concept  ඔක්කොම වගේ ඇතුලත් වෙන විදිහට coding examples එක්කම පැහැදිළි කරනම්. ඔයාල අහල ඇතිනේ  design patterns ගැන ? අහලා ඇති ගොඩ දෙනෙක් , එත් දන්නේ නැ මොනවද , කොහොමද ඒවා use කරලා real world  project එක කරන්නේ කි...

OOP -Introduction

අපි මුලින් බලමු මොකක්ද මේ Object Oriented Programming concept එක කියන්නෙ කියලා. OOP කියන concept එක බිහිවෙන්න කලින් අපි භාවිත කලේ Structured Programming කියන concept එක. නමුත්  Structured Programming concept එක භාවිත කරලා මහපරිමාණ software නිර්මාණය කරන කොට programmers ලට නොයෙකුත් ප්‍රශ්න වලට මුහුණ දීමට සිදුවුණා. ඒ කියන්නේ structured concept එකෙන්  මහපරිමාණ software develop කරනකොට එකම class එකක සියළුම codes ලියන නිසා code වල errors , bugs ආවහම errors සහිත coding lines හඳුනාගෙන ඒවා නැවත සකස් කිරීමට‍ විශාල කාලයක් වගේම විශාල    වෙහෙසක් programmer ට දරන්න සිදුවෙනවා.  මොහොතකට හිතල බලන්න යාලුවනේ අපි structured programming concept එක use කරලා Foodcity එකකට software එකක් develop කරනවා කියලා. ඒ programme එකේ code lines විශාල ප්‍රමාණයක් තියෙනවා. ඉතින් ඒ වගේ අවස්ථාවක errors ආවහම , ඒ වගේම programmer  develop කරපු software එකට අලුතින් new parts add කරන්න අවශ්‍යයි කියල අපේ client කීවහම නැවත new parts add කිරීමේදී software එක develop කිරීමේදී වැය වුන කාලය , ඒ සඳහා c...