To transform an existing AA method inside a class
Inherited
To write a class to inherit Class A, to transform the AA method, it is necessary to ensure that class A has no subclasses to use the inheritance transformation method. If you already have a Class A object, you cannot transform an existing Class A object with inheritance.
Decoration
Write a class implementation with the same interface as Class A, ensuring that decorators and decorators have the same method. Provides the construction method, allows the user to construct the Decorator object time to be the decorator object to pass in, to the method which does not want to transform calls the original Class A method, to want to transform the method to write oneself to be possible.
Dynamic Agent
Already have an object of Class A, not satisfied with the AA method. Create a proxy object, the proxy object directly calls the class A does not need to transform the method, the agent himself wrote a method to transform the AA method.
To transform an existing AA method inside a class