Pattern Border PNG Transparent Images

Download top and best high-quality free Pattern Border PNG Transparent Images backgrounds available in various sizes. To view the full PNG size resolution click on any of the below image thumbnail.

License Info: Creative Commons 4.0 BY-NC

Submitted by on Jul 9, 2022


The decorator pattern is a design pattern in object-oriented programming that allows functionality to be dynamically added to an individual object without impacting the behavior of other objects in the same class. The decorator technique is frequently used to adhere to the Single Responsibility Principle since it allows functionality to be partitioned into classes with distinct concerns. Because an object’s functionality may be enhanced without establishing a totally new object, using decorators can be more efficient than subclassing.

Consider a window in a windowing system as an example. Add horizontal or vertical scrollbars to the window as needed to facilitate scrolling of the window’s contents. Assume that windows are represented by Window interface instances, and that this class lacks the ability to add scrollbars. A subclass of ScrollingWindow could be created to offer these, or a ScrollingWindowDecorator could be created to add this capability to existing Window objects. Either solution would suffice at this time.

Assume you also want to be able to apply borders to windows. The original Window class, once again, is unsupported. Because it basically established a new type of window, the ScrollingWindow subclass now offers a challenge. If you want to add border support to a lot of windows but not all of them, you’ll need to build subclasses like WindowWithBorder and ScrollingWindowWithBorder. With each new feature or window subtype added, the situation worsens.


A new BorderedWindowDecorator is built for the decorator solution. Existing windows can be decorated with any combination of ScrollingWindowDecorator and BorderedWindowDecorator. The base class can be updated if the capability has to be extended to all Windows. On the other hand, it is not always feasible, legal, or convenient to edit the base class (for example, when utilizing external frameworks).

Adding or deleting decorators in response to a command (such as a button push) is a typical UI technique that is frequently used in conjunction with the Command design pattern. A button to highlight text, for example, may be found in a text editing program. Each of the presently chosen text glyphs will be wrapped in decorators that change their draw() method, causing them to be rendered in a highlighted way, when the button is pressed (a real implementation would probably also use a demarcation system to maximize efficiency).

Another popular use case is applying or deleting decorators depending on state changes. Decorators can be applied or deleted in bulk, depending on the scope of the state. Similarly, instead of subclassed classes enclosing changing functionality, the State design pattern may be implemented with decorators. The usage of decorators in this way makes the internal state and functionality of the State object more compositional and capable of dealing with arbitrary complexity.

Download Pattern Border PNG images transparent gallery

Related PNG:

Leave a Comment