{"id":38036,"date":"2016-10-26T16:08:00","date_gmt":"2016-10-26T21:08:00","guid":{"rendered":"http:\/\/kenscourses.com\/tc1019fall2016\/?guid=444fbba99a29041612e014cb28e1043e"},"modified":"2016-10-26T16:08:00","modified_gmt":"2016-10-26T21:08:00","slug":"floreths-blog-2016-10-26-160800","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/floreths-blog-2016-10-26-160800\/","title":{"rendered":"Floreth&#039;s Blog 2016-10-26 16:08:00"},"content":{"rendered":"<br \/><div style=\"text-align: center;\"><span style=\"color: #222222; font-size: large;\"><span style=\"font-family: Times, Times New Roman, serif;\"><b>Software design patterns<\/b><\/span><\/span><\/div><div style=\"text-align: center;\"><span style=\"color: #222222; font-size: large;\"><span style=\"font-family: Times, Times New Roman, serif;\"><b><br \/><\/b><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\">\"A&nbsp;<\/span><span style=\"box-sizing: inherit; font-weight: 700; text-align: start;\">design pattern<\/span><span style=\"background-color: white; text-align: start;\">&nbsp;is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations\"(Source making, 2016).<\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\"><br \/><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\">The concept of software design originated in 1994 with the <i>Gang of four<\/i> (GOF)&nbsp;<\/span>which is a&nbsp;group of&nbsp;authors:&nbsp;<\/span><span style=\"background-color: white; font-size: 15px;\"><span style=\"font-family: Times, Times New Roman, serif;\">Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, who wrote a book called&nbsp;<\/span><\/span><span style=\"box-sizing: border-box; font-size: 15px;\"><span style=\"font-family: Times, Times New Roman, serif;\"><i>Design Patterns - Elements of Reusable Object-Oriented Software<\/i> which originated the concept.<\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"box-sizing: border-box; font-size: 15px;\"><span style=\"font-family: Times, Times New Roman, serif;\"><br \/><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"box-sizing: border-box; font-size: 15px;\"><span style=\"font-family: Times, Times New Roman, serif;\"><b><u>What are the uses of design patterns?<\/u><\/b><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"box-sizing: border-box; font-size: 15px;\"><span style=\"font-family: Times, Times New Roman, serif;\"><b><u><br \/><\/u><\/b><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"box-sizing: border-box;\"><span style=\"font-family: Times, Times New Roman, serif;\">They are two main uses:<\/span><\/span><\/div><div style=\"text-align: justify;\"><\/div><ol><li><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; font-size: 15px;\">They provide a standard terminology and are specific to particular scenario.<\/span><\/span><\/li><li><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; font-size: 15px;\">Learning these patterns helps unexperienced developers to learn software design in an easy and faster way.<\/span><\/span><\/li><\/ol><br \/><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\"><b><u>What are the types of design patterns?<\/u><\/b><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\"><br \/><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"background-color: white;\"><span style=\"font-family: Times, Times New Roman, serif;\">There are 23 design patterns which can be classified in three categories:&nbsp;<\/span><\/span><\/div><div style=\"text-align: justify;\"><\/div><ol><li><span style=\"background-color: white;\"><span style=\"font-family: Times, Times New Roman, serif;\">Creational: you can&nbsp;<\/span><\/span><span style=\"background-color: white; text-align: start;\"><span style=\"font-family: Times, Times New Roman, serif;\">create objects while hiding the creation logic.<\/span><\/span><\/li><li><span style=\"background-color: white;\"><span style=\"font-family: Times, Times New Roman, serif;\">Structural:&nbsp;<\/span><\/span><span style=\"background-color: white; text-align: start;\"><span style=\"font-family: Times, Times New Roman, serif;\">used to compose interfaces and define ways to compose objects to obtain new functionalities.<\/span><\/span><\/li><li><span style=\"background-color: white;\"><span style=\"font-family: Times, Times New Roman, serif;\">Behavioral patterns: worried&nbsp;<\/span><\/span><span style=\"background-color: white; text-align: start;\"><span style=\"font-family: Times, Times New Roman, serif;\">with communication between objects<\/span><\/span><span style=\"background-color: white; color: #313131; font-family: Verdana, Geneva, Tahoma, Arial, Helvetica, sans-serif; font-size: 14px; text-align: start;\">.<\/span><\/li><\/ol><br \/><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\">Sources &amp; Links:<\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><span style=\"background-color: white; text-align: start;\"><a href=\"https:\/\/sourcemaking.com\/design_patterns\" >https:\/\/sourcemaking.com\/design_patterns<\/a><\/span><\/span><\/div><div style=\"text-align: justify;\"><span style=\"font-family: Times, Times New Roman, serif;\"><a href=\"https:\/\/www.tutorialspoint.com\/design_pattern\/design_pattern_overview.htm\" >https:\/\/www.tutorialspoint.com\/design_pattern\/design_pattern_overview.htm<\/a><\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>Software design patterns&#8221;A&nbsp;design pattern&nbsp;is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn&#8217;t a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations&#8221;(Source making, 2016).The concept of software &hellip; <a href=\"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/floreths-blog-2016-10-26-160800\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Floreth&#039;s Blog 2016-10-26 16:08:00<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[355,60,25],"class_list":["post-38036","post","type-post","status-publish","format-standard","hentry","category-blogs","category-syndicated","tag-software-design-patterns","tag-software-engineering","tag-tc1019"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38036","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/comments?post=38036"}],"version-history":[{"count":1,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38036\/revisions"}],"predecessor-version":[{"id":38037,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/38036\/revisions\/38037"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media?parent=38036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/categories?post=38036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/tags?post=38036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}