I. Overview
Concept
Decoupling abstraction from implementation so that abstractions and implementations can run independently
UML diagram
Role:
role Relationship
Second, practice
Set up the appropriate classes according to the roles above
Abstract roles
/**@author Administrator * **/publicabstractclass Abstraction { protected implenmentor impl; Public void operation () { impl.operationimpl (); }}
Correcting abstract roles
/**@author Administrator * **/Publicclassextends abstraction{ @Override publicvoid operation () { // Fix Logic SYSTEM.OUT.PRINTLN ("Fix abstract role");} }
Implementation of the role (interface form)
/**@author Administrator * **/publicabstractclass implenmentor { publicabstractvoid Operationimpl ();}
Implement a specific role (give only one example, you can have more than one specific implementation)
/**@author Administrator * **/Publicclassextends implenmentor{ @Override publicvoid Operationimpl () { // Subclass rewrite logic System.out.println ("Concrete implementation Subclass");} }
Java design Pattern--a singleton pattern of creating patterns