zoukankan      html  css  js  c++  java
  • 【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 }
  • 相关阅读:
    lnmp配置Yii2规则
    vue中前进刷新、后退缓存,列表缓存和回到原位置
    vue 或者传统h5移动端input被输入法键盘挡住解决方法
    uni-app知识
    typescript
    flow
    js点击按钮分别实现全屏以及退出全屏的方法
    vue.config.js配置本地,测试,开发环境变量
    git常用指令
    Git指令
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/6840680.html
Copyright © 2011-2022 走看看