As an example, consider a window in a windowing system. To allow scrolling of the window's contents, one may wish to add horizontal or vertical scrollbars to it, as appropriate. Assume windows are represented by instances of the Window interface, and assume this class has no functionality for adding scrollbars. One could create a subclass ScrollingWindow that provides them, or create a ScrollingWindowDecorator that adds this functionality to existing Window objects. At this point, either solution would be fine.
This difference becomes most important when there are several independent ways of extending functionality. In some object-oriented programming languages, classes cannot be created at runtime, and it is typically not possible to predict, at design time, what combinations of extensions will be needed. This would mean that a new class would have to be made for every possible combination. By contrast, decorators are objects, created at runtime, and can be combined on a per-use basis. The I/O Streams implementations of both Java and the .NET Framework incorporate the decorator pattern.
The invention of photography had a major impact on painting. In the decades after the first photograph was produced in 1829, photographic processes improved and became more widely practiced, depriving painting of much of its historic purpose to provide an accurate record of the observable world. A series of art movements in the late 19th and early 20th centuries—notably Impressionism, Post-Impressionism, Fauvism, Expressionism, Cubism, and Dadaism—challenged the Renaissance view of the world. Eastern and African painting, however, continued a long history of stylization and did not undergo an equivalent transformation at the same time.
Concrete Decorator: Here we have two concrete decorators, ExcitedMessageDecorator and QuizzicalMessageDecorator, each of which descends from the abstract MessageDecorator class. However, these decorators do have special behavior in that they override the GetMessage and PrintMessage behaviors and enhance them by calling the base version from MessageDecorator (which in turn delegates to the relevant IMessage object) and then appending exclamations.
Painter & Decorator About the Job: An opportunity has arisen for a Painter & Decorator join our Engineering Team at Jumeirah Carlton Tower & Jumeirah Lowndes Hotel The main purpose of this Painter & Decorator role is to: Provide a friendly, courteous and professional service to our guests and colleagues whilst carrying out general decorating works, to include PPM work to all rooms and public areas Complete all PPM work in a timely manner and to the required standard To carry out repairs and maintenance to the building when needed To assist other engineering colleagues when required To use HotSOS to start and complete all works To arrive to work on time and be dressed accordingly To maintain good working relationships with all colleagues To correctly log all works and timesheets About you:
Writing a class decorator is very similar to writing a function decorator. The only difference is that the decorator will receive a class and not a function as an argument. In fact, all the decorators you saw above will work as class decorators. When you are using them on a class instead of a function, their effect might not be what you want. In the following example, the @timer decorator is applied to a class:
After 2.4a2 was released, in response to community reaction, Guido stated that he'd re-examine a community proposal, if the community could come up with a community consensus, a decent proposal, and an implementation. After an amazing number of posts, collecting a vast number of alternatives in the Python wiki , a community consensus emerged (below). Guido subsequently rejected  this alternate form, but added:
Pastel is a painting medium in the form of a stick, consisting of pure powdered pigment and a binder. The pigments used in pastels are the same as those used to produce all colored art media, including oil paints; the binder is of a neutral hue and low saturation. The color effect of pastels is closer to the natural dry pigments than that of any other process. Because the surface of a pastel painting is fragile and easily smudged, its preservation requires protective measures such as framing under glass; it may also be sprayed with a fixative. Nonetheless, when made with permanent pigments and properly cared for, a pastel painting may endure unchanged for centuries. Pastels are not susceptible, as are paintings made with a fluid medium, to the cracking and discoloration that result from changes in the color, opacity, or dimensions of the medium as it dries.
This book - The Painter - is a mockery of honesty and reality. Instead, this novel is a male fantasy. An emotional man, a painter, a fisherman, a loner, full of anger and rage, who doesn't hesitate to act on his feelings, defend his family with violence and sleeps with women like he is drinking water - not to mention he gives one woman 4 orgasms in one night. (insert your funny joke about me, the reviewer here)
The decorator pattern is a design pattern that allows you to wrap an object such that it will appear to execute a given behavior in many different ways at different points in program execution. This is especially useful when you want an object to have different behaviors at but are unable to mutate the object. The decorator pattern is a useful way to implement dynamic behavior without needing an extended inheritance-based class hierarchy. To use the decorator pattern you need four elements: a component interface; a concrete component; a decorator abstraction; and, a concrete decorator. The interface sets the contract for both component and decorator behavior, the decorator abstraction contains a pointer to some concrete component, and the concrete decorators wrap a concrete component and override behavior if desired.
This code works for our purposes but it’s not exactly dynamic. If we wanted our initial simpleMsg object to sometimes act excited and sometimes quizzical, we could only do so by instantiating entirely new objects from the relevant subclass. Moreover, the ExcitedAndQuizzicalMessage is really just a combination of ExcitedMessage and QuizzicalMessage and probably shouldn’t have its own class. To fix these problems, let’s now return to the decorator pattern and see how it might help us.
As the leader in providing painter education programs, we enhance the Painter Decorator Academy, with our Painter Educators, our DVD education program, our Painting Curriculum including hands-on practical learning, and job opportunities for graduates on various painting projects. That means Painter School Graduates can find jobs with increased earning potential, the ability to work steady, fulltime hours, and to have career choices within the painting industry.
There is general agreement that syntactic support is desirable to the current state of affairs. Guido mentioned syntactic support for decorators  in his DevDay keynote presentation at the 10th Python Conference , though he later said  it was only one of several extensions he proposed there "semi-jokingly". Michael Hudson raised the topic  on python-dev shortly after the conference, attributing the initial bracketed syntax to an earlier proposal on comp.lang.python by Gareth McCaughan .
Modern artists have extended the practice of painting considerably to include, as one example, collage, which began with Cubism and is not painting in the strict sense. Some modern painters incorporate different materials such as sand, cement, straw or wood for their texture. Examples of this are the works of Jean Dubuffet and Anselm Kiefer. There is a growing community of artists who use computers to "paint" color onto a digital "canvas" using programs such as Adobe Photoshop, Corel Painter, and many others. These images can be printed onto traditional canvas if required.