{"id":37694,"date":"2016-10-14T09:06:44","date_gmt":"2016-10-14T14:06:44","guid":{"rendered":"http:\/\/charpple.wordpress.com\/?p=406"},"modified":"2016-10-14T09:06:44","modified_gmt":"2016-10-14T14:06:44","slug":"software-design-patterns-2","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-design-patterns-2\/","title":{"rendered":"Software Design: Patterns"},"content":{"rendered":"<p>As we know, software design isn&#8217;t the code itself but the way that code must be structured in order to have a higher level of control over it. Patterns themselves are repeatable solutions to problems that occur constantly in software design. These type of structured ways of designing software aren&#8217;t finished designs that can be already transformed into code but they are descriptions that show how to solve certain problems. They are normally templates used in order to have a richer idea on what it will be developed in the future.<\/p>\n<p>There are mainly 3 types of design patterns:<\/p>\n<ul>\n<li>\n<h3>Creational design<\/h3>\n<p>These patterns approach design by the\u00a0instantiation\u00a0of classes. They are divided in class creation which inherit in the instantiation step and object creational patterns that use delegation as it should be in order to achieve certain task. Some of these are:<\/p>\n<ul>\n<li>Abstract Factory<\/li>\n<li>Builder<\/li>\n<li>Factory Method<\/li>\n<li>Object Pool<\/li>\n<li>Prototype<\/li>\n<li>Singleton<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Structural design<\/h3>\n<p>This type of pattern takes a look on how classes and objects are composed. The creation of compose interfaces is mainly by using iheritance. Some of these are:<\/p>\n<ul>\n<li>Adapter<\/li>\n<li>Bridge<\/li>\n<li>Composite<\/li>\n<li>Decorator<\/li>\n<li>Facade<\/li>\n<li>Flyweight<\/li>\n<li>Private Class Data<\/li>\n<li>Proxy<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Behavioral design patterns<\/h3>\n<p>The interaction between objects inside a class happens in a behavioral pattern. These patterns are mainly focused with communication between objects. Some examples of these are:<\/p>\n<ul>\n<li>Chain of responsibility<\/li>\n<li>Command<\/li>\n<li>Interpretre<\/li>\n<li>Mediator<\/li>\n<li>Memeto<\/li>\n<li>Null Object<\/li>\n<li>Observer<\/li>\n<li>State<\/li>\n<li>Strategy<\/li>\n<li>Template method<\/li>\n<li>Visitor<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Bloggers involved in the creation of this post:<\/p>\n<p><a href=\"http:\/\/miguelcbrm.wordpress.com\/\">Carlos Pedraza<\/a><\/p>\n<p><a href=\"http:\/\/miguelcbrm.wordpress.com\/\">Miguel Cabral<\/a><\/p>\n<p><a href=\"https:\/\/vanjrblog.wordpress.com\/\">Victor Najar<\/a><\/p>\n<p><a href=\"http:\/\/rmzkrieg.wordpress.com\/\">Juan Pablo Ram\u00edrez<\/a><\/p>\n<p><em>All this information was taken from <a href=\"https:\/\/sourcemaking.com\/design_patterns\">Sourcemaking.com<\/a> and all rights belong to them.<\/em><\/p><br \/>  <a rel=\"nofollow\" href=\"http:\/\/feeds.wordpress.com\/1.0\/gocomments\/charpple.wordpress.com\/406\/\"><img alt=\"\" border=\"0\" src=\"http:\/\/feeds.wordpress.com\/1.0\/comments\/charpple.wordpress.com\/406\/\" \/><\/a> <img alt=\"\" border=\"0\" src=\"https:\/\/pixel.wp.com\/b.gif?host=charpple.wordpress.com&#038;blog=115273996&%23038;post=406&%23038;subd=charpple&%23038;ref=&%23038;feed=1\" width=\"1\" height=\"1\" \/>","protected":false},"excerpt":{"rendered":"<p>As we know, software design isn&#8217;t the code itself but the way that code must be structured in order to have a higher level of control over it. Patterns themselves are repeatable solutions to problems that occur constantly in software design. These type of structured ways of designing software aren&#8217;t finished designs that can be &hellip; <a href=\"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-design-patterns-2\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Software Design: Patterns<\/span><\/a><\/p>\n","protected":false},"author":33,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[302,305,60,25],"class_list":["post-37694","post","type-post","status-publish","format-standard","hentry","category-blogs","category-syndicated","tag-softwaredesign","tag-softwaredesignpatterns","tag-software-engineering","tag-tc1019"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/comments?post=37694"}],"version-history":[{"count":1,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37694\/revisions"}],"predecessor-version":[{"id":37695,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37694\/revisions\/37695"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media?parent=37694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/categories?post=37694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/tags?post=37694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}