• 【java设计模式】【结构模式Structural Pattern】装饰模式Decorator Pattern


     1 public class Client {
     2     public static void main(String[] args) {
     3         Component component=new ConcreteComponent();
     4         component=new ConcreteDecoratorA(component);
     5         component=new ConcreteDecoratorB(component);
     6         component.doSth();
     7     }
     8 }
     9 interface Component{
    10     void doSth();
    11 }
    12 class ConcreteComponent implements Component{
    13     @Override
    14     public void doSth() {
    15         System.out.println("This is ConcreteComponent.doSth()");
    16     }
    17 }
    18 abstract class Decorator implements Component{}
    19 class ConcreteDecoratorA extends Decorator{
    20     private Component component;
    21     public ConcreteDecoratorA(Component component){
    22         this.component=component;
    23     }
    24     @Override
    25     public void doSth() {
    26         concreteDecoratorA_method();
    27         component.doSth();        
    28     }
    29     public void concreteDecoratorA_method(){
    30         System.out.println("This is ConcreteDecoratorA.concreteDecoratorA_method()");
    31     }
    32 }
    33 class ConcreteDecoratorB extends Decorator{
    34     private Component component;
    35     public ConcreteDecoratorB(Component component){
    36         this.component=component;
    37     }
    38     @Override
    39     public void doSth() {        
    40         concreteDecoratorB_method();
    41         component.doSth();
    42     }
    43     public void concreteDecoratorB_method(){
    44         System.out.println("This is ConcreteDecoratorB.concreteDecoratorB_method()");
    45     }
    46 }
  • 相关阅读:
    export和import实现模块化
    Net Core
    DockerCon 2016
    NET Core 构成体系
    Cloud Engine
    JVM内存结构
    Signalr
    Rabbit.Rpc
    遍历指定包名下所有的类(支持jar)(转)
    httpd的简单配置(转)
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/6840680.html
Copyright © 2020-2023  润新知