1. Problems arising from successionIntroduction: Said Brother Wai that year entrepreneurial open shop-selling soy milk! Because of pure soy milk, branch almost Bloom County City all village, because the development is too fast, so eager to achieve a computer-managed automated accounting system.Ingredients: Soy milkIngredients: sugar black bean grain eggs ..., add the same ingredients add money, each kind of soy milk prices are different. But they are based on the price of soy milk to increase. C
Decorator modeDecorator Mode (alias wrapper): Dynamically attaches responsibilities to objects, and to extend functionality, decorators provide a more resilient alternative than inheritance.The decorator has a common superclass with the decorator, and the purpose of inheritance is to inherit the type, not the behaviorNow, for example, there is a way to filter tex
Application Scenarios for Adorner mode:1, need to extend the functionality of a class.2, dynamic for an object to add functionality, but also can be dynamically revoked. (Inheritance cannot do this, the inherited functionality is static and cannot be dynamically deleted.) )Source interface:1 Public Interface sourceable {23 void method (); 4 }SOURCE class:1 Public class Implements sourceable {2 @Override3public void Method () {4 System.out.println ("Source.method () ..."); 5
students, we have to separate them in different native languages, such as Chinesestu,englishstu,japanesestu.1 //Interface2 InterfaceStudent {3 Public voidspeak ();4 }5 6 //Chinese students7 8 classChinesestuImplementsstudent{9 Public voidspeak () {TenSYSTEM.OUT.PRINTLN ("Hello!"); One } A } - - //British students the - classEnglishstuImplementsstudent{ - Public voidspeak () { -System.out.println ("hello!"); + } - } + A //Japanese students at - classJapanesestuImplementsstudent{
Use
Decorator mode (Decorator) dynamically adds some additional responsibilities to an object. For added functionality, the Decorator mode is more flexible than generating subclasses.
Decorator mode is a structured pattern .structureFigure-Decorator modeComp
The difference between static proxy and decorator mode:Let's take a look at the decorator pattern definition: Decorator mode dynamically attaches responsibility to the object. To extend functionality, decorators provide a more resilient alternative than inheritance. To summarize the use of decorator mode is to enhance
); Flycar.move (); System.out.println ("Add new features, swim in the water ....") "); Watercar wcar = new Watercar (flycar); Wcar.move ();}}Scenarios used in development:
Design of input stream and output stream in IO
The component functions of the graphical interface in swing package
The Servlet API provides a default implementation class for the decorator design pattern of a Request object
Httpservletrequestwrapper, which enhan
1: Decorative mode: Decorative mode expands the functionality of the object in a transparent manner to the client, and is an alternative to the inheritance relationship, providing more flexibility than inheritance. Dynamically adds functionality to an object that can be undone on the fly. Adds a very large amount of functionality resulting from the combination of some basic functions. is the ability to dynamically extend an object without having to change the original class file and not use inhe
The adornment mode uses an instance of a subclass of the decorated class.Delegating the client's call to the decorated class, the key to decorating the pattern is that such an extension is completely transparent. Decorating patterns are also widely used in Java, for example, when we define button, dialog boxes, and so on, we are actually using decorative mode.The most obvious example of a decorative pattern is a photo-photo frame sample. First, schema
Adorner mode-decorator (Java implementation)Adorner mode allows you to add new functionality to an existing object without changing its structure.Where "existing object" is the Stringdisplay class in this article.The objects that add new features are in this article: the Sideborder class and the Fullborder classDisplay interfacePublic interface Display { int getcolumns (); int getRows (); String ge
The Java IO class expands using the adorner pattern, where the FilterInputStream class is the base class for the adorner (decorator).
To implement other adorners (decorator), you need to inherit the FilterInputStream class.
Code:
/**
* @time May 23, 2014 * * *
package decorator.io;
Import Java.io.FilterInputStream;
Import java.io.IOException;
I
, outputstringwriter can adapt the byte stream of the outputstream type to a char stream.
The source code of jdk1.4 is similar to that of inputstreamreader. If you are interested, check the online source code of jdk1.4.
This book is followed by a small example with some explanations. I will not list it. You can check it if you have any books.
Summary
In these three articles, there are three knowledge points:
Knowledge Point 1: Four hierarchical structures of the
The Monkey King has 72 changes, each of his changes brings him an additional skill. And no matter how the Monkey king changes in the eyes of the two lang God, he will always be the varlet.The adorner pattern attaches more responsibility to an object dynamically in a transparent manner to the customer.In the Monkey King's example, the old sun turned into a fish like the old grandchild's subclass.The class diagram of the decoration pattern is as follows:Description of the role of the decoration pa
Decorator mode can dynamically add some additional responsibilities to an object. For added functionality, the decorator mode is more flexible than generating subclasses.The applicable environment for this mode is:(1) Add responsibilities to a single object in a dynamic, transparent manner without affecting other objects.(2) to deal with duties that can be undone.(3) When a method of generating subclasses c
The decoration mode, also known as the wrapper mode, is an alternative to the inheritance relationship by extending the object functions in a transparent way to the client. Transparent to the client means that the interface remains unchanged.
Problem:
During the OO design and development process, we often encounter the following situation: we need to add new responsibilities for the classes we have designed, we usually define a new class to inherit the custom class. because the combination is b
Step one: Define a base class, where you need to decorate the method, the base class can be a class, can also be an interface
Public interface sourceable {public
void method ();
}
Step two: Define a decorated class, inherit (implement) the base class
The public class Source implements sourceable{@Override the public
void Method () {
System.out.println ("This is Method one");
}
}
Step three: Define an adorner, (directly or indirectly inheriting the base class) where the base class is
Class Girl{public void Showappearance () {System.out.println ("The Girl:face without Make Up");}} Class Takeflower extends Girl{girl girl=null;public takeflower (Girl Girl) {this.girl=girl;} public void Showappearance () {girl.showappearance (); Takeflower ();} public void Takeflower () {System.out.println (' Take Flower ');}} Class Takenecklace extends Girl{girl girl=null;public takenecklace (Girl Girl) {this.girl=girl;} public void Showappearance () {girl.showappearance (); Takenecklace ();} p
First, the adorner mode (decorator pattern)
Allows you to add new functionality to an existing object without changing its structure. This type of design pattern is a structural pattern and is a wrapper for an existing class.
This pattern creates a decorative class that wraps the original class and provides additional functionality while preserving the integrity of the class method signature.
We demonstrate the use of the adorner pattern through th
Adorner mode (decorator pattern) allows new functionality to be added to an existing object without altering its structure. This type of design pattern is a structural pattern and is a wrapper for an existing class.
This pattern creates a decorative class that wraps the original class and provides additional functionality while preserving the integrity of the class method signature.
We demonstrate the use of the adorner pattern through the example b
I. Introduction
(1) The decoration mode, also called the packaging mode, is an alternative mode of inheritance.
(2) The decoration mode is generally used in some concentrated conditions:
Dynamically add some additional responsibilities to an object. The Decorator mode is more flexible than the subclass generation function.
1. Add roles to a single object dynamically and transparently without affecting other objects.
2. Handle the revoking responsibili
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.