zoukankan      html  css  js  c++  java
  • 装饰器模式

    装饰器模式允许向一个现有的对象添加新的功能,同时又不改变原始结构。装饰类是现有类的一个包装。

    基础接口:

    1 public interface Component {
    2 
    3     void operation();
    4 }

    原始类:

    1 public class ConcreComponent implements Component {
    2 
    3     @Override
    4     public void operation() {
    5         System.out.println("concre component");
    6     }
    7 }

    抽象装饰器:

     1 public abstract class BaseDecorator implements Component {
     2 
     3     public Component component;
     4 
     5     public BaseDecorator(Component component) {
     6         this.component = component;
     7     }
     8 
     9     @Override
    10     public void operation() {
    11         this.component.operation();
    12     }
    13 }

    自定义装饰器:

     1 public class ConcreDecorator extends BaseDecorator {
     2 
     3     public ConcreDecorator(Component component) {
     4         super(component);
     5     }
     6 
     7     @Override
     8     public void operation() {
     9         this.component.operation();
    10         decorateMethod();
    11     }
    12 
    13     public void decorateMethod() {
    14         System.out.println("decorateMethod");
    15     }
    16 }

    测试方法:

    public class Main {
    
        public static void main(String[] args) {
            Component concreComponent = new ConcreComponent();
            ConcreDecorator concreDecorator = new ConcreDecorator(concreComponent);
            concreDecorator.operation();
        }
    }
  • 相关阅读:
    本周学习进度条11
    编程珠玑阅读笔记01
    单词统计
    本周学习进度条10
    《构建之法》读后感三
    第九周总结
    第一阶段冲刺
    第八周总结
    wpf图片浏览器,实现缩放平移操作图片切换等功能
    获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄
  • 原文地址:https://www.cnblogs.com/avalon-merlin/p/10516578.html
Copyright © 2011-2022 走看看