{"id":38016,"date":"2016-10-24T23:18:15","date_gmt":"2016-10-25T04:18:15","guid":{"rendered":"http:\/\/mmiranda96blog.wordpress.com\/?p=136"},"modified":"2016-10-24T23:18:15","modified_gmt":"2016-10-25T04:18:15","slug":"software-design-patterns-8","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-design-patterns-8\/","title":{"rendered":"Software design patterns"},"content":{"rendered":"<p>Nature is formed by patterns. As my data structures teacher, Dr. M\u00e9ndez, keeps saying in our class: &#8220;PATTERNS!&#8221;. So yeah.<\/p>\n<p>Software desing patterns consist in, as you may think, patterns when designin software (what a great reasoning). But why is this important? When designing with patterns, you have some advantages:<\/p>\n<ul>\n<li>Code reutilization: by following the same pattern, one can always have a starting base, instead of starting by scratch.<\/li>\n<li>Standarization: using patterns, code becomes simpler to read, easier to understand and, if another developer continues the work, he\/she will have a lot less problems with it.<\/li>\n<li>Already-working solution: if one pattern works, then it might work with another project.<\/li>\n<\/ul>\n<p>Software design patterns can be classified into the following:<\/p>\n<ul>\n<li>Creational: focused on the creation of objects and the manipulation of them. Examples:\n<ul>\n<li>Builder<\/li>\n<li>Object pool<\/li>\n<li>Prototype<\/li>\n<\/ul>\n<\/li>\n<li>Structural: focused on relationships between entities. Examples:\n<ul>\n<li>Adapter<\/li>\n<li>Bridge<\/li>\n<li>Decorator<\/li>\n<\/ul>\n<\/li>\n<li>Behavioral: focused on the behavior of and within objects. Examples:\n<ul>\n<li>Iterator<\/li>\n<li>Publish\/subscribe<\/li>\n<li>Template<\/li>\n<\/ul>\n<\/li>\n<li>Concurrency: focused on multi threading. Examples:\n<ul>\n<li>Active object<\/li>\n<li>Reactor<\/li>\n<li>Thread-specific storage<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure data-shortcode=\"caption\" id=\"attachment_139\" style=\"width: 404px\" class=\"wp-caption aligncenter\"><img class=\" wp-image-139\" src=\"https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=404&#038;h=269\" alt=\"flickr photo by Avital Pinnick https:\/\/flickr.com\/photos\/spindexr\/6678273769 shared under a Creative Commons (BY-NC-ND) license\" width=\"404\" height=\"269\" srcset=\"https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=404&amp;h=269 404w, https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=808&amp;h=538 808w, https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=150&amp;h=100 150w, https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=300&amp;h=200 300w, https:\/\/mmiranda96blog.files.wordpress.com\/2016\/10\/6678273769_58096d356a_o.jpg?w=768&amp;h=512 768w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><figcaption class=\"wp-caption-text\">flickr photo by Avital Pinnick <a href=\"https:\/\/flickr.com\/photos\/spindexr\/6678273769\" rel=\"nofollow\">https:\/\/flickr.com\/photos\/spindexr\/6678273769<\/a> shared under a Creative Commons (BY-NC-ND) license<\/figcaption><\/figure><br \/>  <a rel=\"nofollow\" href=\"http:\/\/feeds.wordpress.com\/1.0\/gocomments\/mmiranda96blog.wordpress.com\/136\/\"><img alt=\"\" border=\"0\" src=\"http:\/\/feeds.wordpress.com\/1.0\/comments\/mmiranda96blog.wordpress.com\/136\/\" \/><\/a> <img alt=\"\" border=\"0\" src=\"https:\/\/pixel.wp.com\/b.gif?host=mmiranda96blog.wordpress.com&#038;blog=115150697&%23038;post=136&%23038;subd=mmiranda96blog&%23038;ref=&%23038;feed=1\" width=\"1\" height=\"1\" \/>","protected":false},"excerpt":{"rendered":"<p>Nature is formed by patterns. As my data structures teacher, Dr. M\u00e9ndez, keeps saying in our class: &#8220;PATTERNS!&#8221;. So yeah. Software desing patterns consist in, as you may think, patterns when designin software (what a great reasoning). But why is this important? When designing with patterns, you have some advantages: Code reutilization: by following the &hellip; <a href=\"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-design-patterns-8\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Software design patterns<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":139,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[209,349,54,25],"class_list":["post-38016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogs","category-syndicated","tag-design","tag-pattens","tag-software","tag-tc1019"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38016","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/comments?post=38016"}],"version-history":[{"count":2,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38016\/revisions"}],"predecessor-version":[{"id":38017,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38016\/revisions\/38017"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media?parent=38016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/categories?post=38016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/tags?post=38016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}