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

IoT Project - Smart Crop Seer 1.0

Smart C rop S eer 1 .0         Team XitorS Our Team Members Kelum Perera Visura De Silva Wageesha Ishani Charitha Wickramanayake Main purpose of the project   So, the main purpose of this project is to develop an IoT  device and and mobile application which can be used by anyone who has a very little knowledge in technology to aware of soil properties, environmental properties and demand in market.     Main objectives of the project Following would be the main objectives of the project.   To indicate availability of Nitrogen, Phosphorous and Potassium in the soil (whether nutrients are low, average or high)   To indicate moisture level in soil To indicate humidity of surrounding air  To indicate temperature of surrounding air  To show a list of most suitable crops to cultivate  To identify two agricultural zones to conduct the research To identify m...

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...

MVC Design Pattern (Model-View-Controller)

ඉතින් යාලුවනේ මම අද ඔයාලට කියන්න යන්නෙ software industrial එකට ගොඩක් වැදගත් වෙන design pattern එකක්. ඒ තමයි MVC එහෙමත් නැත්නම් Model-View-Controller කියන design pattern එක. අපි දැන්  බලමු මොනවද මේ model , view ,controller කියන ඒවායින් කියවෙන්නේ කියලා. Model  : අපි model එකක් කියලා සාමාන්‍යයෙන් කියන්නෙ object එකකට.අපේ program එකේ   ඇතුලත වෙන ක්‍රියාවලිය අපි ඉදිරිපත් කරන්නේ model එකකින්.  View : අපි දැන් බලමු view එකක කියන්නෙ මොකක්දේ කියලා. view එක කියන්නෙ model එකෙ       තියෙන දේවල් user ට පෙන්වන්නේ එහෙමත්මේ නැත්නම් visualise කරන්නේ මේ  view එක හරහා තමයි. Controller : අපි controller කියලා කියන්නෙ model එකේ වෙන වෙනස්කම් view එකේ update   කරන්නේ ඒවගේම model එකයි view එකයි control කරන්නේ මේ controller එකෙන් තමයි. මේ design pattern එකේ මේ කොටසේ තමයි business logic එක අපි ලියන්නේ. හරියට අපේ brain එක වගේ තමයි controller එක ක්‍රියාකරන්නේ.  මේ MVC design pattern එකේ තියෙන ප්‍රධාන වාසියක් තමයි අපි program එකේ ඔක්කොම codes ටික එකම...