{"id":1879,"date":"2017-12-20T09:55:10","date_gmt":"2017-12-20T04:25:10","guid":{"rendered":"http:\/\/stepbystepschools.net\/?p=1879"},"modified":"2017-12-20T10:42:57","modified_gmt":"2017-12-20T05:12:57","slug":"revision-for-70th-batch-of-design-pattern-training-in-mumbai","status":"publish","type":"post","link":"https:\/\/www.stepbystepschools.net\/?p=1879","title":{"rendered":"Revision for 70th Batch of Design Pattern training in Mumbai."},"content":{"rendered":"<p>As usual awesome senior crowd and thanks for friends who travelled from Indore to attend the design pattern session in Mumbai.<\/p>\n<p><a href=\"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg\" rel=\"attachment wp-att-1880\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1880\" src=\"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg\" alt=\"1\" width=\"501\" height=\"375\" srcset=\"https:\/\/www.stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg 501w, https:\/\/www.stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1-300x225.jpg 300w\" sizes=\"(max-width: 501px) 100vw, 501px\" \/><\/a><\/p>\n<p>A quick revision about what we learnt in the class: &#8211;<\/p>\n<ol type=\"1\">\n<li>Design pattern should be applied naturally. Any artificial implementation leads to bad architecture.<\/li>\n<li>Design pattern, Architecture pattern and Architecture style are three different things.<\/li>\n<li><b>DDD<\/b> is an approach where we ensure that we follow domain. So, if in domain we have \u201cBank\u201d in our code we have a \u201cBank\u201d class or object.<\/li>\n<li><b>Ubiquitous language<\/b> means both development team and business team should follow same vocabulary. There should not be synonyms while discussion. So, for example if you user is using the word \u201citenary\u201d and developers are using \u201cpath\u201d it just causes confusion.biquitous language means both development team and business team should follow same vocabulary. There should not be synonyms while discussion. So, for example if you user is using the word \u201citenary\u201d and developers are using \u201cpath\u201d it just causes confusion.<\/li>\n<li>There are 3 types of classes <b>Entity, Value and Service<\/b>.<\/li>\n<li>Entities and Services classes are straight forward but for value objects you need to implement \u201cgethashcode\u201d , operator overloading and by overriding \u201cequals\u201d method.<\/li>\n<li>In Aggregate root all execution happens via a central root object.<\/li>\n<li><b>Iterator pattern<\/b> helps to loop through the aggregate root collection with out violating aggregate root integrity and validation.<\/li>\n<li>Four diagrams of UML are must <b>Use cases, activity, class diagrams and sequence diagram<\/b>. Use case and activity are used in requirement document and class diagram and sequence diagram is used in technical design phase.<\/li>\n<li>Factory pattern has three flavors <b>simple factory, factory pattern and abstract factory<\/b>.<\/li>\n<li><b>Simple factory pattern<\/b> is nothing but one polymorphism and putting new keyword in a central location. Simple factory pattern has one factory class which has new keyword and the objects are referenced via interfaces.<\/li>\n<li>In <b>Factory pattern<\/b> the object creation process is delegated to subclasses. The objects are referenced via common interfaces.<\/li>\n<li><b>Abstract factory pattern<\/b> helps to put factory pattern in to same families so that factories become manageable.<\/li>\n<li><b>Decorator pattern<\/b> helps to add behavior dynamically to a class without altering the class. Its implemented by using linked list and chaining via constructor.<\/li>\n<li>In <b>template pattern<\/b> we have fixed sequence steps in the parent class and later the subclasses can define how the individual sequence steps should behave but cannot alter the sequence.<\/li>\n<li><b>Fa\u00e7ade<\/b> they help us to simplify a subsystem interfaces.<\/li>\n<li><b>Bridge pattern<\/b> helps to implement decouple abstraction from encapsulation. Remember the example of \u201cCustomer\u201d and \u201cLead\u201d.<\/li>\n<li><b>CQRS<\/b> says that model for updating \/ inserting and delete should be different from the model which reads even though it violates reusability. DTO and reporting objects are one of the indirect ways of implementing CQRS.<\/li>\n<li><b>Prototype<\/b> helps to clone objects. \u201cMemeberwiseclone\u201d method is used in .NET to do shallow cloning for deep cloning we need to use serialization or every class should implement the clone method. Legal cloning means the class create the clone and illegal means its created from outside.<\/li>\n<li><b>Adapter pattern<\/b> helps to make classes work together which they would not have because of incompatible interfaces. Adapter pattern comes in two flavors class level adapter pattern and object adapter pattern.<\/li>\n<li><b>Flyweight pattern <\/b>is used to store objects internal state so that we can revert to the original state when needed. This pattern can be simplified by using prototype pattern.<\/li>\n<li><b>Repository pattern<\/b> is a layer which binds the model and the data layer. It included things like in-memory operation, mapping code, caching, transaction and so on. By this we can change the data access layer technology with out disturbing the model code.<\/li>\n<li><b>UOW (Unit of work)<\/b> helps to implement transaction in repository.<\/li>\n<li><b>Singleton pattern<\/b> is not about just making classes static it should also implement features like thread safety, lazy loading, safe iteration and so on.<\/li>\n<li><b>Mediator pattern<\/b> helps to simplify complex communication between many objects by acting as central communicator between objects.<\/li>\n<li><b>Command pattern<\/b> helps us to treat command as objects. With this thought we can implement things like undo and redo an action.<\/li>\n<li><b>Interpreter pattern<\/b> interprets grammar and executes logic for the grammar. The thought here is that every grammar word has a class and then the classes are sequenced while execution.<\/li>\n<li>MVC , MVP and MVW are GUI architecture patterns. The whole goal here to put UI binding code in to a class. There are different names from different technology section. So in ASP.NET they call it MVC , WPF calls in MVVM. MVP is a pattern which is used more with Webforms.<\/li>\n<li><b>Proxy pattern<\/b> is implemented using WCF , Web service , Web API in todays modern programming world.<\/li>\n<li><b>Visitor pattern , state pattern and observer<\/b> are less used patterns.<\/li>\n<li>Estimation using <b>FPA (Function point analysis)<\/b> is more scientific than using WBS. In FPA we count EI\/EO\/EQ\/EIF and then come out with an estimation.<\/li>\n<\/ol>\n<p>The complete syllabus of design pattern can be found at <a href=\"http:\/\/stepbystepschools.net\/?page_id=319\" target=\"_blank\">http:\/\/stepbystepschools.net\/?page_id=319<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As usual awesome senior crowd and thanks for friends who travelled from Indore to attend the design pattern session in Mumbai. A quick revision about what we learnt in the class: &#8211; Design pattern should be applied naturally. Any artificial &hellip; <a href=\"https:\/\/www.stepbystepschools.net\/?p=1879\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":40,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[1,196,42],"tags":[29,197],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai<\/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.stepbystepschools.net\/?p=1879\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai\" \/>\n<meta property=\"og:description\" content=\"As usual awesome senior crowd and thanks for friends who travelled from Indore to attend the design pattern session in Mumbai. A quick revision about what we learnt in the class: &#8211; Design pattern should be applied naturally. Any artificial &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.stepbystepschools.net\/?p=1879\" \/>\n<meta property=\"og:site_name\" content=\"Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-20T04:25:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-20T05:12:57+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"StepByStepSchoolsSupport\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.stepbystepschools.net\/#website\",\"url\":\"https:\/\/www.stepbystepschools.net\/\",\"name\":\"Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai\",\"description\":\"MVC 5\/Core, AngularJS 1.x, 2.0, 4.0, Design Pattern, Architecture, SSIS, SSAS, SSRS, Data Science, Big data, Hadoop classroom training\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.stepbystepschools.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.stepbystepschools.net\/?p=1879#primaryimage\",\"url\":\"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg\",\"contentUrl\":\"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.stepbystepschools.net\/?p=1879#webpage\",\"url\":\"https:\/\/www.stepbystepschools.net\/?p=1879\",\"name\":\"Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai\",\"isPartOf\":{\"@id\":\"https:\/\/www.stepbystepschools.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.stepbystepschools.net\/?p=1879#primaryimage\"},\"datePublished\":\"2017-12-20T04:25:10+00:00\",\"dateModified\":\"2017-12-20T05:12:57+00:00\",\"author\":{\"@id\":\"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/7131e4ee1c5673879e6029d14ec2f655\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.stepbystepschools.net\/?p=1879#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.stepbystepschools.net\/?p=1879\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.stepbystepschools.net\/?p=1879#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.stepbystepschools.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Revision for 70th Batch of Design Pattern training in Mumbai.\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/7131e4ee1c5673879e6029d14ec2f655\",\"name\":\"StepByStepSchoolsSupport\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cecaf2a0ee369391127b0159c266979d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cecaf2a0ee369391127b0159c266979d?s=96&d=mm&r=g\",\"caption\":\"StepByStepSchoolsSupport\"},\"url\":\"https:\/\/www.stepbystepschools.net\/?author=40\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai","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.stepbystepschools.net\/?p=1879","og_locale":"en_US","og_type":"article","og_title":"Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai","og_description":"As usual awesome senior crowd and thanks for friends who travelled from Indore to attend the design pattern session in Mumbai. A quick revision about what we learnt in the class: &#8211; Design pattern should be applied naturally. Any artificial &hellip; Continue reading &rarr;","og_url":"https:\/\/www.stepbystepschools.net\/?p=1879","og_site_name":"Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai","article_published_time":"2017-12-20T04:25:10+00:00","article_modified_time":"2017-12-20T05:12:57+00:00","og_image":[{"url":"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"StepByStepSchoolsSupport","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.stepbystepschools.net\/#website","url":"https:\/\/www.stepbystepschools.net\/","name":"Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai","description":"MVC 5\/Core, AngularJS 1.x, 2.0, 4.0, Design Pattern, Architecture, SSIS, SSAS, SSRS, Data Science, Big data, Hadoop classroom training","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.stepbystepschools.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.stepbystepschools.net\/?p=1879#primaryimage","url":"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg","contentUrl":"http:\/\/stepbystepschools.net\/wp-content\/uploads\/2017\/12\/1.jpg"},{"@type":"WebPage","@id":"https:\/\/www.stepbystepschools.net\/?p=1879#webpage","url":"https:\/\/www.stepbystepschools.net\/?p=1879","name":"Revision for 70th Batch of Design Pattern training in Mumbai. - Learn MVC, Angular, Architecture, MSBI, Data Science in Mumbai","isPartOf":{"@id":"https:\/\/www.stepbystepschools.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.stepbystepschools.net\/?p=1879#primaryimage"},"datePublished":"2017-12-20T04:25:10+00:00","dateModified":"2017-12-20T05:12:57+00:00","author":{"@id":"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/7131e4ee1c5673879e6029d14ec2f655"},"breadcrumb":{"@id":"https:\/\/www.stepbystepschools.net\/?p=1879#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.stepbystepschools.net\/?p=1879"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.stepbystepschools.net\/?p=1879#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.stepbystepschools.net\/"},{"@type":"ListItem","position":2,"name":"Revision for 70th Batch of Design Pattern training in Mumbai."}]},{"@type":"Person","@id":"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/7131e4ee1c5673879e6029d14ec2f655","name":"StepByStepSchoolsSupport","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.stepbystepschools.net\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cecaf2a0ee369391127b0159c266979d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cecaf2a0ee369391127b0159c266979d?s=96&d=mm&r=g","caption":"StepByStepSchoolsSupport"},"url":"https:\/\/www.stepbystepschools.net\/?author=40"}]}},"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/posts\/1879"}],"collection":[{"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1879"}],"version-history":[{"count":3,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/posts\/1879\/revisions"}],"predecessor-version":[{"id":1883,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=\/wp\/v2\/posts\/1879\/revisions\/1883"}],"wp:attachment":[{"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stepbystepschools.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}