{"id":20621,"date":"2023-02-06T02:49:59","date_gmt":"2023-02-06T02:49:59","guid":{"rendered":"https:\/\/www.booksofall.com\/cn\/?post_type=product&#038;p=20621"},"modified":"2023-02-06T02:49:59","modified_gmt":"2023-02-06T02:49:59","slug":"a-functional-pattern-system-for-object-oriented-design","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/","title":{"rendered":"A Functional Pattern System for Object-Oriented Design"},"content":{"rendered":"<h4>Problem<\/h4>\n<p>The <a href=\"https:\/\/www.tutorialspoint.com\/object_oriented_analysis_design\/ooad_object_oriented_paradigm.htm\">object-oriented paradigm<\/a> has undoubtfully raised our ability to design and maintain large complex <a href=\"https:\/\/en.wikipedia.org\/wiki\/Software_system\">software systems<\/a>. However, it does not seem to have meet the high expectations concerning reuse and ease of evolution which have been promoted ever since its commercial success.<\/p>\n<p>There are many potential reasons for the above observation such as <a href=\"https:\/\/medical-dictionary.thefreedictionary.com\/unqualified+staff\">unqualified staff<\/a>, immature languages, <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0022354919304381\">inadequate methodologies<\/a>, inappropriate business processes, etc.<\/p>\n<p>The view presented here is that although the object-oriented paradigm is a powerful basis, it is incomplete in its inherent concepts and therefore restricts the design space to inappropriate solutions. It is assumed that both software development and language design are restrained from achieving their full potential when restricted to a purely object-oriented worldview.<\/p>\n<h4>Solution<\/h4>\n<p>Since the complementary paradigm to object-orientation is represented by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Functional_programming\">functional programming<\/a>, I investigate high-level, well-known to work functional concepts and examine their suitability to enhance object-oriented design. I explore the software engineering relevance of each concept and present its intent, applicability, implementation, and consequences in the literate form of a design pattern.<\/p>\n<p>My approach clearly motivates functional techniques for object-oriented design from a software engineering point of view. This is different to the usual procedure of designing a new language with an \u201cad-hoc\u201d conglomeration of functional and object-oriented features. The latter case requires excellence in language design and makes it hard to find out and evaluate uses of the new language.<\/p>\n<p>In contrast, design patterns are already widely used to improve design. As functional concepts constitute a powerful paradigm by themselves, it is more than suggestive to assume that design patterns expressing successful functional concepts will enhance the object-oriented paradigm with new capabilities.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe frameborder=\"0\" allowtransparency=\"true\" allowFullscreen=\"true\" style=\"width: 100%; height: 700px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/fps-sans-escher-18y52xk2em?enforceShowPromotionBar=true&#038;p=1\"><\/iframe><\/p>\n","protected":false},"featured_media":20625,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":""},"product_brand":[],"product_cat":[307],"product_tag":[],"class_list":{"0":"post-20621","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-eiffel","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll Simplified Chinese\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png\" \/>\n<meta name=\"twitter:label1\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/\",\"url\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/\",\"name\":\"A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png\",\"datePublished\":\"2023-02-06T02:49:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png\",\"width\":\"440\",\"height\":\"608\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/cn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/cn\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"A Functional Pattern System for Object-Oriented Design\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/#website\",\"url\":\"https:\/\/www.booksofall.com\/cn\/\",\"name\":\"BooksOfAll Simplified Chinese\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/cn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/#organization\",\"name\":\"BooksOfAll Simplified Chinese\",\"url\":\"https:\/\/www.booksofall.com\/cn\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.booksofall.com\/cn\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll Simplified Chinese\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/cn\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/","og_locale":"zh_CN","og_type":"article","og_title":"A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese","og_url":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/","og_site_name":"BooksOfAll Simplified Chinese","og_image":[{"url":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png","twitter_misc":{"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/","url":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/","name":"A Functional Pattern System for Object-Oriented Design - BooksOfAll Simplified Chinese","isPartOf":{"@id":"https:\/\/www.booksofall.com\/cn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png","datePublished":"2023-02-06T02:49:59+00:00","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#primaryimage","url":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png","contentUrl":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2023\/02\/img_63e0675251ae4.png","width":"440","height":"608"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/cn\/a-functional-pattern-system-for-object-oriented-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/cn\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/cn\/categories\/"},{"@type":"ListItem","position":3,"name":"A Functional Pattern System for Object-Oriented Design"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/cn\/#website","url":"https:\/\/www.booksofall.com\/cn\/","name":"BooksOfAll Simplified Chinese","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/cn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/cn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/cn\/#organization","name":"BooksOfAll Simplified Chinese","url":"https:\/\/www.booksofall.com\/cn\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.booksofall.com\/cn\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/cn\/wp-content\/uploads\/sites\/2\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll Simplified Chinese"},"image":{"@id":"https:\/\/www.booksofall.com\/cn\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/product\/20621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/media\/20625"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/media?parent=20621"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/product_brand?post=20621"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/product_cat?post=20621"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/cn\/wp-json\/wp\/v2\/product_tag?post=20621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}