<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JMarathi</title>
    <description>The latest articles on DEV Community by JMarathi (@j_marathi).</description>
    <link>https://dev.to/j_marathi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F323838%2F029710e9-7947-4e90-9186-c9334c86ca5b.jpg</url>
      <title>DEV Community: JMarathi</title>
      <link>https://dev.to/j_marathi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/j_marathi"/>
    <language>en</language>
    <item>
      <title>Software quality control with code linters</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Thu, 06 Aug 2020 15:31:18 +0000</pubDate>
      <link>https://dev.to/j_marathi/software-quality-control-with-code-linters-2ddm</link>
      <guid>https://dev.to/j_marathi/software-quality-control-with-code-linters-2ddm</guid>
      <description>&lt;p&gt;Software quality control has always been an important and integral part of building and maintaining a software.Even though we have the sense of measuring the quality of a product by our own interpretations, it is not always possible to perfectly ensure the quality without conforming to the standards defined in the industry. Most of us are aware of the terminologies but do not know the key differences among them. This article is all about defining software quality control, pointing out the difference between quality control of software and software quality assurance and later we will use an example of code linters to signify a particular software quality control technique.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q7D4uVH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pqkb7dluwt1uytgr96cn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q7D4uVH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pqkb7dluwt1uytgr96cn.png" alt="Software Development"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/software-quality-control-code-linters"&gt;What is Software Quality Control?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Take for an example, a product you purchased from a shopping mart. What thing goes into your mind before and after you pick it up and pay for it?Obviously, youmay think of its quality, check for any flaws in it and only after using it finally, you decide how good or bad it is. This is from the buyers point of view i.e. the buyer is following a set of steps to make sure he/she is buying a proper product. The analogy we described can be applied to software as well. That was from the buyers context (the consumer). In the context of software, software quality control is set of procedures that the organisation’s key players use to ensure that their software product will meet the required quality.&lt;/p&gt;

&lt;p&gt;According to Wikipedia’s  definition software quality control is commonly referred to as Testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Quality Control Vs Quality Assurance
&lt;/h3&gt;

&lt;p&gt;It is hard to differentiate between the two terms just by looking at them, they seem synonymous.However, one is the subset of the other. If Software Quality Control is a set of procedures to follow while developing a software product and adhering to the software engineering principles then Software Quality Assurance is the means of monitoring the entire software development process. It includes the following phases:&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Read the full article here: &lt;a href="https://www.decipherzone.com/blog-detail/software-quality-control-code-linters"&gt;https://www.decipherzone.com/blog-detail/software-quality-control-code-linters&lt;/a&gt; *&lt;/em&gt;&lt;/p&gt;

</description>
      <category>software</category>
      <category>webdev</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>12 Web design trends 2020</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Wed, 29 Jul 2020 13:03:00 +0000</pubDate>
      <link>https://dev.to/j_marathi/12-web-design-trends-2020-2bhi</link>
      <guid>https://dev.to/j_marathi/12-web-design-trends-2020-2bhi</guid>
      <description>&lt;p&gt;Web designing trends are one of the most crucial parts of marketing and branding a perception of your brand. The modern web designs are moreover technology and data-driven rather than just being creativity-driven. The designs that can be built at the lowest possible cost with modern web designing tools and frameworks which also facilitates better user experience along with high conversion rates are preferred.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/top-best-web-designing-trends-2020"&gt;list of our top 12 best web designing trends in 2020&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;*Dark Mode&lt;br&gt;
*Solid Color Blocks&lt;br&gt;
*Solid Colored Frames&lt;br&gt;
*Split Screen&lt;br&gt;
*Overlapping Layers&lt;br&gt;
*Interactive 3-D Elements&lt;br&gt;
*Collage of photography with animation&lt;br&gt;
*Vibrant Color Schemes&lt;br&gt;
*Interactive Cursor animations&lt;br&gt;
*Color Psychology&lt;br&gt;
*Easy to modify web designs&lt;br&gt;
*Minimalistic header &amp;amp; navigation&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Dark Mode&lt;br&gt;
Dark mode web designs have huge demand these days due to power-saving capabilities and ease in working on computers for extended hours. The LED and OLED screens are designed in such a way that they offer great visibility in dark scenes and save a huge power which becomes a competitive advantage for battery-operated devices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Solid Color Blocks&lt;br&gt;
The array of solid color blocks is used in places where you want to represent multiple ideas clearly at one place which is contrary to collage where different ideas cascade into each other and have a common relevancy intersection. While creating these blogs try to pick vibrant colors for blocks and lines with fewer words to represent your idea that will provide great user experience and better conversion rate.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Read the full article here: &lt;a href="https://www.decipherzone.com/blog-detail/top-best-web-designing-trends-2020"&gt;https://www.decipherzone.com/blog-detail/top-best-web-designing-trends-2020&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Backend Developer RoadMap 2020</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Mon, 20 Jul 2020 10:14:53 +0000</pubDate>
      <link>https://dev.to/j_marathi/backend-developer-roadmap-2020-4dbl</link>
      <guid>https://dev.to/j_marathi/backend-developer-roadmap-2020-4dbl</guid>
      <description>&lt;p&gt;Backend Developer Roadmap for 2020. In the era of internet-based mobile and web applications, the high reliance on powerful cloud servers and cheaper handheld or portable computing devices have increased the mankind’s accessibility over powerful applications at a cheaper cost. On the other end, dependency on backend computing tasks has grown exponentially that created an ocean of opportunities for backend developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.decipherzone.com/blog-detail/backend-developer-roadmap-for-2020"&gt;2020 Backend Developer Roadmap&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Backend developer roadmap for 2020 learnings is immensely deep which needs a lot of topics to be covered. Although we will cover some topics in this blog for the rest, we will provide a list that’s either already linked to blogs on those topics or we will be more detailed writing blogs on them.&lt;/p&gt;

&lt;p&gt;Basic Frontend Knowledge&lt;/p&gt;

&lt;p&gt;For frontend knowledge please refer to our previous blog “Frontend developer roadmap for 2020”&lt;/p&gt;

&lt;p&gt;Data structure and OS concepts&lt;/p&gt;

&lt;p&gt;Data structure and operating system concepts are key criteria’s that extract the best performance out of your code at the minimal expense on hardware so you must learn it in under your backend developer roadmap for 2020. Here’s a list of some concepts that you must learn:&lt;/p&gt;

&lt;p&gt;Time Complexity&lt;br&gt;
Space Complexity&lt;br&gt;
Memory Management&lt;br&gt;
Process Management&lt;br&gt;
Inter-Process Communication&lt;br&gt;
Threads handling&lt;br&gt;
Concurrency Management&lt;br&gt;
Using Terminal and its basic operations&lt;br&gt;
Common Conflicts with Operating System dependencies&lt;br&gt;
Databases&lt;br&gt;
For databases please refer our previous blog “Database Developers roadmap for 2020”&lt;/p&gt;

&lt;p&gt;Read the full store here: &lt;a href="https://www.decipherzone.com/blog-detail/backend-developer-roadmap-for-2020"&gt;https://www.decipherzone.com/blog-detail/backend-developer-roadmap-for-2020&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>java</category>
      <category>python</category>
      <category>ruby</category>
    </item>
    <item>
      <title>2020 Front-end Developer RoadMap</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Thu, 16 Jul 2020 14:32:27 +0000</pubDate>
      <link>https://dev.to/j_marathi/2020-front-end-developer-roadmap-2h2j</link>
      <guid>https://dev.to/j_marathi/2020-front-end-developer-roadmap-2h2j</guid>
      <description>&lt;p&gt;&lt;a href="https://www.decipherzone.com/blog-detail/frontend-developer-roadmap-2020"&gt;Frontend developer roadmap for 2020&lt;/a&gt; is an article that’s written in conjunction with “web developers roadmap for 2020”, this blog touches the second key aspect in web development. The blog is written to guide aspiring frontend developers, so without further a due let’s dive into this second aspect i.e. frontend developer roadmap for 2020 in detail.&lt;/p&gt;

&lt;p&gt;The exponential growth of the IT industry is pretty eminent to everyone but very few know the struggle caused by a divergence in the growth of hardware and software. The growth of software brought us to the bottleneck of local computers’ capabilities and we shifted to cloud infrastructure for deploying applications. A new type of architecture and different approaches at every end was required to develop these web applications. One of the approaches deals with web applications’ behavior on the client-side where we deal with the interaction of end-user from his or her machine to the web application’s backend deployed on the cloud server. Frontend developer deals with the client-side of web applications that run on our computers via web browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.decipherzone.com/blog-detail/frontend-developer-roadmap-2020"&gt;Frontend Developer Learning RoadMap 2020&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read the full article here: &lt;a href="https://www.decipherzone.com/blog-detail/frontend-developer-roadmap-2020"&gt;https://www.decipherzone.com/blog-detail/frontend-developer-roadmap-2020&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>angular</category>
      <category>react</category>
    </item>
    <item>
      <title>Web Designing Trends in 2020</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Wed, 17 Jun 2020 14:50:30 +0000</pubDate>
      <link>https://dev.to/j_marathi/web-designing-trends-in-2020-3ac5</link>
      <guid>https://dev.to/j_marathi/web-designing-trends-in-2020-3ac5</guid>
      <description>&lt;p&gt;When it comes to web design, we are always biased towards choosing the right colour scheme. Well, that was of utmost importance back in the days and is still relevant today. However, it is not the only thing that web designers focus on. The dark mode has been trending for the last couple of years and has been a top web design trend because everybody wants it so badly that even WhatsApp had to roll out the dark mode. There is nothing special about the dark mode, it is just a black theme but the spontaneous demand from the users made many web applications to shift their design to integrate that web design trend. In order to stay in the race and not losing users, your web apps theme should also be updated from time to time. You might have noticed that Gmail, YouTube, and Twitter keep doing that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.decipherzone.com/blog-detail/web-designing-trends-2020"&gt;Top 8 web design trends in 2020&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Technology Trends 2020</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Fri, 05 Jun 2020 06:48:04 +0000</pubDate>
      <link>https://dev.to/j_marathi/technology-trends-2020-53go</link>
      <guid>https://dev.to/j_marathi/technology-trends-2020-53go</guid>
      <description>&lt;p&gt;We have seen an upsurge of technological tools used in the past decade. Smart Phones have taken over the world and with that, the use of the internet has become an integral part of people’s lives. What we have come across in the past decade was shaped by the efforts of tech companies like Apple, Google, Facebook, and Microsoft. They were the key players in shaping the face of the IT industry. It will be interesting to see how technology trends in 2020 will shape the future of the upcoming decade. We already have got hints regarding some of the coolest technology that will be trending in 2020 in the last few years.&lt;/p&gt;

&lt;p&gt;Read the full article: &lt;a href="https://www.decipherzone.com/blog-detail/technology-trends-2020"&gt;https://www.decipherzone.com/blog-detail/technology-trends-2020&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>What is the proxy design pattern?</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Sun, 24 May 2020 13:46:20 +0000</pubDate>
      <link>https://dev.to/j_marathi/what-is-the-proxy-design-pattern-11ih</link>
      <guid>https://dev.to/j_marathi/what-is-the-proxy-design-pattern-11ih</guid>
      <description>&lt;p&gt;The object oriented Proxy Design Pattern is a structural design pattern which is concerned with how classes and objects compose to form larger structures. The proxy design pattern in java takes a similar approach by providing a proxy object that acts as a placeholder for another object. Commonly a proxy is a class that functions as an interface to something else. The proxy design pattern can be best understood with the help of a real-world example. In computer networks, we usually come across the term proxy server. It is a server application that acts as an intermediary for web requests from the clients. The client, instead of connecting directly to a server, directs its request to the proxy server which performs the intended filtration and other network transaction. The purpose of proxy server is to simplify and control the complexity of the requests by providing additional benefits such as privacy and security. Proxies have been designed to add structure and encapsulation to distributed systems in computer networks.&lt;/p&gt;

&lt;p&gt;The Proxy Design Pattern has the same intent has the proxy servers in computer networks. In this article we will define what is proxy design pattern, walk through the implementation and also see what are the benefits of using the proxy design pattern in java.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Article Source: &lt;a href="https://www.decipherzone.com/blog-detail/proxy-design-pattern-in-java"&gt;What is Proxy Design Pattern&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>java</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is the proxy design pattern?</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Sun, 24 May 2020 13:41:34 +0000</pubDate>
      <link>https://dev.to/j_marathi/what-is-the-proxy-design-pattern-18kp</link>
      <guid>https://dev.to/j_marathi/what-is-the-proxy-design-pattern-18kp</guid>
      <description>&lt;p&gt;The object oriented Proxy Design Pattern is a structural design pattern which is concerned with how classes and objects compose to form larger structures. The proxy design pattern in java takes a similar approach by providing a proxy object that acts as a placeholder for another object. Commonly a proxy is a class that functions as an interface to something else. The proxy design pattern can be best understood with the help of a real-world example. In computer networks, we usually come across the term proxy server. It is a server application that acts as an intermediary for web requests from the clients. The client, instead of connecting directly to a server, directs its request to the proxy server which performs the intended filtration and other network transaction. The purpose of proxy server is to simplify and control the complexity of the requests by providing additional benefits such as privacy and security. Proxies have been designed to add structure and encapsulation to distributed systems in computer networks.&lt;/p&gt;

&lt;p&gt;The Proxy Design Pattern has the same intent has the proxy servers in computer networks. In this article we will define what is proxy design pattern, walk through the implementation and also see what are the benefits of using the proxy design pattern in java.&lt;/p&gt;

&lt;p&gt;Full Article Source: &lt;a href="https://www.decipherzone.com/blog-detail/proxy-design-pattern-in-java"&gt;What is Proxy Design Pattern&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>java</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is Composite Design Pattern?</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Fri, 08 May 2020 11:36:26 +0000</pubDate>
      <link>https://dev.to/j_marathi/what-is-composite-design-pattern-3h63</link>
      <guid>https://dev.to/j_marathi/what-is-composite-design-pattern-3h63</guid>
      <description>&lt;p&gt;Composite Design Pattern is a design pattern that falls in the category of structural patterns. Such patterns are concerned with how classes and objects are composed to form larger structures.  Composite Pattern describes one such way of building a class hierarchy made up of classes for two different kinds of objects (composite and primitive). One goal of software engineering is to maintain high cohesion between modules and the other to reduce coupling.&lt;/p&gt;

&lt;p&gt;Many applications that have to deal with hierarchical data need to make sure that they do not have too much of dependency among their classes because such applications constantly need to update their components. A file system is a classic example of hierarchical structure that contains folders within folders and files within folders. A file can be a video, text document, audio file. So, there can be multiple audio files in one folder and multiple video files in other and both these can be inside of another folder that represents “media” which can itself be in another folder called “lectures”. The Lecture folder can also contain another folder that represent topic, and this can go on for ever. The point we are trying to make is if you are trying to design such an application that deals with hierarchical components, you may end up creating class structures that are highly coupled and in order to add more components a lot of redundancy might occur. In order to solve this common problem composite design pattern provides an elegant solution. First of all, let us see what is composite design pattern? (Java Development Company)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java"&gt;What is composite design pattern?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Composite design pattern provides a design hierarchy, in which nodes with children differ from nodes without children. You can think of the tree data structure in this case. And compared to our example, a node can be a folder, and children might be files or folders consisting of files. A group of objects are treated the same way as a single instance of the same type of that object, so no matter what, we will think of the node and its children as the folder component, this makes it easier for us to design our hierarchical structure of components for our application. We will refer to components (objects) within of components (objects) as compositions. The composite design pattern lets the client treat individual objects and compositions uniformly. The core thing to keep in mind is the tree structure, while dealing with this design pattern. In order to understand what is composite design pattern and its applicability better, let's make use of a code example in java which is similar to the file system example we gave.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/template-method-design-pattern"&gt;All you need to know about Template Method Design Pattern&lt;/a&gt;"&lt;/p&gt;

&lt;h3&gt;
  
  
  Composite design pattern example
&lt;/h3&gt;

&lt;p&gt;The example we are going to use is going to be of a course that consist of topics and lectures.  If you are taking a course on any subject, there will be a topic and that topic can consist of many topics and lectures. So, how would that be implemented? We will first show you the common approach.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Let us create a Lecture Class
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_W4kdL2z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_When%2520to%2520Use%2520Composite%2520Design%2520Pattern%2520in%2520Java1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_W4kdL2z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_When%2520to%2520Use%2520Composite%2520Design%2520Pattern%2520in%2520Java1.png" alt="What is composite design pattern?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig: composite design pattern example in java – Lecture Class&lt;/p&gt;

&lt;p&gt;The Lecture has a name and a display method to display the hierarchy of it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Topic Class
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---XohLcU4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_When%2520to%2520Use%2520Composite%2520Design%2520Pattern%2520in%2520Java2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---XohLcU4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_When%2520to%2520Use%2520Composite%2520Design%2520Pattern%2520in%2520Java2.png" alt="What is composite design pattern?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig: composite design pattern example in java – Topic Class&lt;/p&gt;

&lt;p&gt;In our example, the topic class has the features of adding a topic, adding a lecture, and displaying the lectures and topics in a hierarchy. Topic binds other topics and lectures within itself. So, we can have subtopics and lectures on each.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Let’s see how we combine these in the main method
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Full article: &lt;a href="https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java"&gt;https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>java</category>
      <category>codequality</category>
    </item>
    <item>
      <title>What is Template Method Design Pattern?</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Tue, 05 May 2020 10:51:33 +0000</pubDate>
      <link>https://dev.to/j_marathi/what-is-template-method-design-pattern-2i37</link>
      <guid>https://dev.to/j_marathi/what-is-template-method-design-pattern-2i37</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/@mahipal.nehra/what-is-template-method-design-pattern-cf99389c8658" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o5yxNnEY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2AvB8Ou9TtQsPdjal8A6eqfQ.jpeg" alt="Mahipal Nehra"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/@mahipal.nehra/what-is-template-method-design-pattern-cf99389c8658" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;What is Template Method Design Pattern? - Mahipal Nehra - Medium&lt;/h2&gt;
      &lt;h3&gt;Mahipal Nehra ・ &lt;time&gt;May 4, 2020&lt;/time&gt; ・ 3 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_EkM13RG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-2c57b3ec653e92a3d6207e708f1e4987099fc69342e556aaf9f035b1968b3f26.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Article Source: &lt;a href="https://www.decipherzone.com/blog-detail/template-method-design-pattern"&gt;https://www.decipherzone.com/blog-detail/template-method-design-pattern&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>java</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Decorator design pattern</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Wed, 29 Apr 2020 13:38:32 +0000</pubDate>
      <link>https://dev.to/j_marathi/decorator-design-pattern-1f8c</link>
      <guid>https://dev.to/j_marathi/decorator-design-pattern-1f8c</guid>
      <description>&lt;p&gt;The decorator design pattern is one of the classic design patterns used to overcome the recurring design problems in object-oriented software. It allows us to add functionality to an object dynamically. By dynamically, we mean modifying the behaviour of an object at run time. Although we have used the term behaviour, but decorator design pattern falls in the category of structural design pattern, because it has something to do with the way we structure our classes. There are a few bumpy areas in using inheritance to which the decorator design pattern provides an elegant solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example"&gt;Decorator design pattern in java with examples&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This article will first describe what decorator design pattern is, why to use it and then we will use a simple decorator design pattern java example to demonstrate its significance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Article Source: &lt;a href="https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example"&gt;https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example"&gt;What is decorator design pattern in java?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Decorator design pattern in java proposes a way to customise our objects dynamically during run time, instead of us having to write code to do that during compile time. You can think of it as an alternative to sub classing. When we subclass a parent class, there might be multiple combination of classes resulting in a class explosion. As you can see in the image below, the beverage class is being subclassed by multiple classes to add their own blend to it. Although it seems to follow the Single Responsibility Principle, it quite does not seem an elegant solution and obviously is hard to maintain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6bqGxJJX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6bqGxJJX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520example.png" alt="Decorator design pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig: Decorator Design Pattern – Class Explosion&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example"&gt;Why to use decorator design pattern?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The snippet you saw, certainly is mind blowing. What if there was a way to reduce the number of subclasses we create for every variation of an object? That would be a lot better solution and that is what the decorator design pattern has to offer. The approach is to make objects acquire responsibilities (feature, variation, combination, additional functionality) at run time. The concept of composition comes into play when doing this. Composition is pretty different from inheritance, you see. Our decorator design pattern example in java will make it more clear, composition refers to containing instances of other classes that implement desired functionality. Inheritance is more of prototyping a parent and based on that implementing the child classes. Composition describes a “has- a” relationship while inheritance describes an “is-a” relationship between objects.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/design-pattern-observer-java"&gt;Design Patterns: A quick guide to Observer pattern in Java&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;Although inheritance is a foundational pillar of Object-Oriented Programming, completely relying on it for structuring classes will lead to class explosion, as we saw earlier. Therefore, we need design patterns, and specific ones for specific situations to handle messy and repetitive code patterns. And in our case, decorator design pattern comes in handy. Let us see a code example.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decorator design pattern in java example
&lt;/h3&gt;

&lt;p&gt;Suppose we have a pizza store that allows customers to buy a few types of pizzas – Thin crust pizza, Thick crust pizza and allow them to add toppings as well. Our task is to design a system that allows customers to get the description and cost of a particular type of pizza. Now, the catch here is they can demand any type of pizza, say thin crust pizza with cheese and olives. How would you do it?&lt;/p&gt;

&lt;p&gt;The first thing that would come in your mind would be to create a Pizza class that could be then sub classed by thin crust pizza and thick crust pizza classes. In order to create thin crust pizza with cheese you would then create thin crust pizza with cheese class, also if there is a cheese thin crust pizza with olives, you will have to create that class as well. However now, you might have started to get the picture of class explosion in this case. Our class diagram might look like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GgI6uuvz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GgI6uuvz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig: Decorator Design Pattern in java – Class Explosion Pizza Example&lt;/p&gt;

&lt;p&gt;Although, the class diagram seems neat, if we had more types or toppings, it would be the same as the one we showed earlier.&lt;/p&gt;

&lt;h3&gt;
  
  
  How can we solve this using the decorator design pattern? Lets see..
&lt;/h3&gt;

&lt;p&gt;Firstly, we will define a component (Pizza Class) which will then be extended by concrete components (Thin Crust and Thick Crust Pizzas).&lt;/p&gt;

&lt;p&gt;Then we will define a decorator that will extend the main component.&lt;/p&gt;

&lt;p&gt;The decorator then will be used to extend the state of the main component by adding new functionalities to it.&lt;/p&gt;

&lt;p&gt;Did that make sense? If no, then follow along…&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Abstract Pizza Class (The main component)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DY5uLZ36--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DY5uLZ36--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example : Main Component&lt;/p&gt;

&lt;p&gt;This Pizza class will be used as the base to create other types of pizza. This is the main component of our system.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Concrete components
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--43sthQ_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--43sthQ_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples1.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example: Concrete Component (Thin crust Pizza)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JPqM8Kjq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JPqM8Kjq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples2.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example: Concrete Component (Thick Crust Pizza)&lt;/p&gt;

&lt;p&gt;The concrete components are the ones that will have dynamically added behaviour at run time. For example, “Thin crust pizza with, tomato sauce, cheese, olives”.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Decorators
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--idtOSwcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--idtOSwcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples3.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example: Topping Decorator abstract class or interface&lt;/p&gt;

&lt;p&gt;As you can see the decorator implements the same abstract class (Pizza) that they will decorate. This is where the real game begins.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Implementing decorator objects
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---eIHIKUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---eIHIKUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples4.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example: Cheese Decorator&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ld4YAiBD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ld4YAiBD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples5.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig- decorator design pattern in java example: Olives Decorator&lt;/p&gt;

&lt;p&gt;As you can see in both the implementations, the decorators have reference to the instance variable that they will decorate, in this case it is Pizza. It can be any type of pizza, all it should be is of the type pizza. Additionally, they have their own extension of description and cost.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/best-free-java-development-ide"&gt;Top 5 Best Free Java Development IDE in 2020&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;See them in action:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hdKfpvcn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hdKfpvcn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples6.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where everything wraps up, pizza has instance of ThincrustPizza() that has its own cost and description. The next line has “composed” Cheese and ThincrustPizza objects, Cheese class acts as a decorator for the Thincrust Pizza , so now we have ThincrustPizza with Cheese. Same applies to greekPizza. At the end ThinCrustPizza, Cheese and Olives have been composed. As mentioned earlier, “composition refers to containing instances of other classes that implement desired functionality”.In our case greekPizza has contained the reference of cheesePizza that has its own functionality, also cheesePizza has contained the reference of pizza. Thus, creating a “Thin crust Pizza with tomato sauce, cheese , olives”. This is how decorators work.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to use decorator design pattern and what was the point of doing all these steps?
&lt;/h3&gt;

&lt;p&gt;Decorator pattern solved the class explosion problem. We did not create subclasses for every type of pizza.&lt;/p&gt;

&lt;p&gt;We can easily extend code without modifying other classes. Say, if we want Onion Pizzas with olives, we just need to extend the Topping decorator with Onion Pizza class and compose them like we did in the above example.&lt;/p&gt;

&lt;p&gt;We can wrap the components with any number of decorators i.e. if we want onion pizza with olives and cheese, we simply need additional wrapping and not another subclass with this feature.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/factory-design-patterns-in-java"&gt;Factory Design Patterns in Java&lt;/a&gt;"&lt;/p&gt;

&lt;h3&gt;
  
  
  Are there any caveats to decorator design pattern in java?
&lt;/h3&gt;

&lt;p&gt;Of course, there is, introducing decorators increases complexity of the code needed to instantiate the component. Also, it is just not about instantiation, there may be lots of wrapped objects that need to be instantiated at run time as well. The other caveat is that decorators are hard to implement in a way that does not affect the behaviour depending on how the decorators are stacked. But it surely solves an unnecessary class inheritance pattern.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5AxLNf_h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5AxLNf_h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ares.decipherzone.com/blog-manager/uploads/ckeditor_Decorator%2520design%2520pattern%2520in%2520java%2520with%2520examples7.png" alt="Decorator Design Pattern"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have come this far, you surely need to know one thing, java is flooded with decorator design pattern and one such example is below. You can now guess that the BufferedInputStream is decorating the fin object.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/singleton-design-pattern-java"&gt;Singleton Design Pattern – A thoughtful dive into Object Structures and Creation&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;Finally, we would like to conclude this blog by saying – use decorators when it is not possible to extend an object’s behaviour using inheritance in a neat way. By neat we mean, code cleanliness and complexity.&lt;/p&gt;

&lt;p&gt;Read: "&lt;a href="https://www.decipherzone.com/blog-detail/react-native-getting-started-brief-guide"&gt;React Native- Getting started with a brief guide&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Article Source: &lt;a href="https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example"&gt;https://www.decipherzone.com/blog-detail/decorator-design-pattern-java-example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>java</category>
    </item>
    <item>
      <title>A quick guide to the observer design pattern</title>
      <dc:creator>JMarathi</dc:creator>
      <pubDate>Fri, 24 Apr 2020 11:47:42 +0000</pubDate>
      <link>https://dev.to/j_marathi/a-quick-guide-to-the-observer-design-pattern-1ie6</link>
      <guid>https://dev.to/j_marathi/a-quick-guide-to-the-observer-design-pattern-1ie6</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/@mahipal.nehra/a-quick-guide-to-the-observer-design-pattern-f460df2a2ba" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o5yxNnEY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/1%2AvB8Ou9TtQsPdjal8A6eqfQ.jpeg" alt="Mahipal Nehra"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/@mahipal.nehra/a-quick-guide-to-the-observer-design-pattern-f460df2a2ba" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A quick guide to the observer design pattern - Mahipal Nehra - Medium&lt;/h2&gt;
      &lt;h3&gt;Mahipal Nehra ・ &lt;time&gt;Apr 24, 2020&lt;/time&gt; ・ 8 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aYMKNcyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-fbdac08496f06c5bd53be920c7bc8d56d355b69c0fb7e49cac6357a70140af17.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>java</category>
      <category>design</category>
      <category>webdev</category>
      <category>webperf</category>
    </item>
  </channel>
</rss>
