parametric construct, generates an object A through the new keyword, and then produces a new object T by A.clone (), then the constructor is not used when the object is copied. Be executed. That is, only one construction method is executed during the copy process.Clone vs final two pair of enemies. The object's clone is caused by a conflict with the final property within the object. In the programmer class above, modify to private final address address; Remove Get,set method, proto.address= (Ad
Java implementation of structural design patterns-appearance patterns
I. Description
The appearance mode is also called the facade mode, which is to package a complex system. The external interfaces of the system are provided by the appearance class. When a complex system needs to provide external interfaces, it needs
(); Ocar.excet (); }}Template method Pattern Applicable scenario
One-time implementation of an invariant part of the algorithm, and the variable behavior is left to subclass to achieve.
The public behavior in each subclass should be extracted and centralized into a common parent class to avoid code duplication. This is a good example of what Opdyke and Johnson described as "re-factoring to generalize." First identify the differences in the existing code and separate the differen
, filterinputstream,filteroutputstream
Concretedecorate Specific Decorative roles: responsible for adding new responsibilities to component objects, Bufferedinputstream,bufferedoutputstream, etc.
Advantages
Extended object functionality is more flexible than inheritance and does not result in a dramatic increase in the number of classes.
You can decorate an object multiple times, creating a combination of different behaviors and getting more powerful objects.
The concre
The structural design pattern solves the coupling problem between the modules from the structure of the program. The following seven modes are included:
Adapter mode: An excuse for the class can be matched to another interface
Combination mode: The combination of objects
Proxy mode: A Simple object instead of a complex object that will be called later
Appearance Mode: A class represents a subsystem
Enjoy meta mode: used to
Create bean Factory all useFactory methodFor the production of fixed products in the same grade structure support to increase any productAbstract FactoryAll products for the production of different product familiesAbstract product family can be added to the inability of the productPrototype mode (copy, clone)You need to implement the Cloneable interface using the Clone () method to copy a close () method such as a file streamCreating an object with new requires very tedious data preparation or
implementation is packaged into a class, if there are many alternative strategies, then the number of these classes is very large.To recognize a policy pattern from a code perspective:(Zhao Yun with three tricks to solve the problem, there are three elements in this scene: Three ingenious tricks, one capsule, one Zhao Yun)1. First create a policy interface (contains an algorithm that can be executed by each of the tips)2. Then write three implementation classes, because there are three clever t
observer;/** * Specific observer classes, such as LV Zeng in the example, Zhang Wei is an example of the Observer * @author WL * */public class Concretewatcher implements watcher { String Watcheredname; String Name;public concretewatcher (String name,string watcheredname) {this.name=name;this.watcheredname= Watcheredname;} @Overridepublic void Updata (String str) {System.out.println (name+ "Heart secretly happy" Hey!!! The opportunity came, my "+watcheredname+" said she ' "+str+" ' "");}Package
);/** * update Price */ Food.setprice (1.5f);}}third, the application scenarioGUI frame, meteorological observation, etc.Iv. SummaryBe sure to call the Setchanged () method before notifying all observers to set the state of the observer to be changed so that notifyobservers () will not be updated with the Observer Update method. If there are different opinions or omissions in the above content, please give us some valuable suggestions or comments.Finally, you can try to use the following UML mod
();
}
}
}
public class Mysubject extends Abstractsubject {
@Override
public void operation () {
System.out.println ("Update self!");
Notifyobservers ();
}
}
Test class:
public class Observertest {
public static void Main (string[] args) {
Subject sub = new Mysubject ();
Sub.add (New Observer1 ());
Sub.add (New Observer2 ());
Sub.operation ();
}
}
Output:Update self!Observer1 has rece
or after forwarding these requests. This ensures that additional functionality can be added externally without modifying the structure of a given object at run time. In object-oriented design, the extension of functionality to a given class is usually achieved through inheritance.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. (In
. the difference between equals and = = Earlier we saw that both the Clone object and the equals and = = of the original object return false, whether it is a shallow copy or a deep copy. So what is the relationship between equals and = =? For basic data types, = = compares their values. For non-primitive types of objects, = = comparison is their address in memory, such as the previous oldobject and newobject the same address, while the Equals method, if it does not overwrite the quilt class, it
is the new Pegadapter, called Two-way adapter:1 Public classPegadapterImplementsiroundpeg,isquarepeg{2 3 Privateroundpeg roundpeg;4 Privatesquarepeg squarepeg;5 6 //Construction Method7 PublicPegadapter (Roundpeg peg) { This. roundpeg=peg;}8 //Construction Method9 PublicPegadapter (Squarepeg Peg) ( This. squarepeg=peg;)Ten One Public voidInsert (String str) {roundpeg.insertintohole (str);} A -} There is also a kind of called pluggable adapters, can dynamically
Java and design patterns-template patterns
The template mode can be understood as the step mode, and the steps can be clearly followed when you add the template mode. The concept of a template should be very familiar to many people. Write a resume and a thesis. If there is a template for our reference, it will be easie
.run(); }}The operation requires interaction, first of all, the requirement to enter the H1 model of the Hummer if there is a sound, as follows:-------H1型号悍马-------- H1型号的悍马是否需要喇叭声响?0-不需要 1-需要输入“0”后的运行结果如下所示:-------H1型号悍马-------- H1型号的悍马是否需要喇叭声响?0-不需要 1-需要0悍马H1发动... 悍马H1引擎声音是这样的... 悍马H1停车...-------H2型号悍马-------- 悍马H2发动... 悍马H2引擎声音是这样的... 悍马H2停车...The results of the operation after entering "1" are as follows:-------H1型号悍马-------- H1型号的悍马是否需要喇叭声响?0-不需要 1-需要 1悍马H1发动...悍马H1引擎声音是这样的...悍马H1鸣笛..
= 100.0f; Private floatdiameter = 10.0f; /*** Growth behavior, each call length and radius increase by one times*/ Public voidgrow () { This. diameter *= 2; This. Height *= 2; } /*** Reduce the behavior by half the length and radius of each call*/ Public voidshrink () { This. diameter/= 2; This. Height/= 2; }}View CodeClient class: Packageprototype;Importjava.util.Date; Public classClient {PrivateMonkey Monkey =NewMonkey (NewDate (),NewGoldringedstaff ()); Public voidChange () {//
structure and content of the design pattern, so I should use actual examples to help me understand the design patterns. If you go back and read a book again, there will be a lot of questions, the feeling of another village. (Not even applause)In Java, the design
Java classic 23 design patterns: behavioral patterns (4)
This article describes the policy mode, template method, and visitor mode in 11 behavioral design patterns.I. Policy Mode
Define a series of algorithms, encapsulate each of them, and make them replaceable. This mode al
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:
[email protected]
and provide relevant evidence. A staff member will contact you within 5 working days.