Design patterns


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Design patterns

  1. 1. Design Patterns Authors: Deepak Kumar & Swapnil Chandra
  2. 2. <ul><ul><li>Design Patterns were introduced to the software community in ' Design Patterns ' by software architect Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides </li></ul></ul><ul><ul><li>Colloquially known as the &quot;gang of four&quot; </li></ul></ul><ul><ul><li>A Design Pattern is a known solution to commonly occurring problems or scenarios in software design.  </li></ul></ul><ul><ul><li>It is a kind of a template or structure on which one can code the application. </li></ul></ul>What Are Design Patterns?    
  3. 3. Common Software Design Patterns ... <ul><ul><li>Singleton Pattern </li></ul></ul><ul><ul><li>MVC (i.e. Model-View-Controler)  </li></ul></ul><ul><ul><li>Factory Method </li></ul></ul><ul><ul><li>Observer  </li></ul></ul>
  4. 4. Singleton Pattern ... <ul><ul><li>This pattern is used in applications when only a single instance of a resource is required </li></ul></ul><ul><ul><li>Most common type of resource, on which this can be applied is database connection </li></ul></ul><ul><ul><li>You want to share the database handle in an application because it's an overhead to keep opening and closing connections, particularly during a single page fetch </li></ul></ul><ul><ul><li>  An object is a singleton if the application can include one and only one of that object at a time </li></ul></ul>
  5. 5. <ul><ul><li>Model-View-Controller, this is the most commonly used design pattern </li></ul></ul><ul><ul><li>This patterns separates the business logic and presentation logic in such a way that any changes in the presentation logic should not interfere with the business logic and vice-versa </li></ul></ul><ul><ul><li>This is done with the help of a middle object called controller whose job is to take the request from the view pass it on the model </li></ul></ul><ul><ul><li>if required present the updated/new view to the user. </li></ul></ul>MVC Pattern ...
  6. 6. <ul><ul><li>Factory Method is a object oriented creational pattern </li></ul></ul><ul><ul><li>The method is used to create and initiate objects for classes </li></ul></ul><ul><ul><li>Use of factories gives the programmer the opportunity to abstract the specific attributes of an Object into specific subclasses which create them </li></ul></ul><ul><ul><li>i.e. it defines an interface for creating an object, but let the subclasses decide which class to instantiate. </li></ul></ul>Factory Pattern ...
  7. 7. <ul><ul><li>Observer pattern allows one object (the observer) to watch another (the subject) </li></ul></ul><ul><ul><li>The subject object notify the observer object if the subject’s state changes (Conceptually, the Observer pattern in something like a trigger in a database, which runs a stored procedure when a table row is modified </li></ul></ul><ul><ul><li>The main advantage of this pattern is that it decouples the observer from the subject </li></ul></ul><ul><ul><li>The subject doesn’t need to know anything special about its observers. Instead, the subject simply allows observers to subscribe. </li></ul></ul>Observer Pattern ...
  8. 8. <ul><ul><li>Design patterns have two major benefits. </li></ul></ul><ul><ul><ul><li>First, they provide you with a way to solve issues related to software development using a proven solution. The solution facilitates the development of highly cohesive modules with minimal coupling </li></ul></ul></ul><ul><ul><ul><li>Second, design patterns make communication between designers more efficient. Software professionals can immediately picture the high-level design in their heads when they refer the name of the pattern used to solve a particular issue when discussing system design. </li></ul></ul></ul>Benefits of Design Patterns ...
  9. 9. Conclusion ... <ul><ul><li>There are many other reational/structural/ behavioral patterns, like Iterator, Adapter, Prototype, State etc.  </li></ul></ul><ul><ul><li>But in order to implement a pattern effectively a detailed study is done at our end here at Mobicules Systems to understand the nature of the problem and how a particular design pattern solves it. </li></ul></ul>
  10. 10. <ul><li>We can do the following for your app: </li></ul><ul><ul><li>Conceptualize, or participate in the process </li></ul></ul><ul><ul><li>Design it, incorporating top notch ease of use </li></ul></ul><ul><ul><li>Architect it to be future ready </li></ul></ul><ul><ul><li>Develop it fast, using the best solution available </li></ul></ul><ul><ul><li>Maintain it efficiently </li></ul></ul><ul><ul><li>Scale it to a huge user base </li></ul></ul>
  11. 11. <ul><li>We offer services in the areas of: </li></ul><ul><ul><li>Social Networks and Platforms Development </li></ul></ul><ul><ul><li>Symfony apps Development: Social Networks, Travel Sites, CRM systems etc </li></ul></ul><ul><ul><li>Drupal apps Development: Social Networks, Brochure sites etc </li></ul></ul><ul><ul><li>Facebook and OpenSocial apps Development </li></ul></ul><ul><ul><li>Mobile apps Development – iPhone, Android, J2ME, Blackberry, WinMo </li></ul></ul>
  12. 12. Contact Us Development Center: B-35, First Floor, Sector-57, Noida-201301 (INDIA) Phone: +91-9873778077, +91-1204358187+1-213-291-1527 E-mail: [email_address]