装饰器模式

题外话:把技术点记录下来,只是为了理清思路,加深理解。让自己对知识点理解更加透彻,而使用到工作中合适的场景。

概述:‘装饰器模式’,从‘装饰器’三个字面意思,去靠近理解,此模式去装饰(包含)某个实体(类),使其和原来不一样(功能扩展,加强)。

比较:装饰器模式和继承一个类去扩展功能比较相似,但是装饰器模式不会破坏原有类的签名,而是一个新的类去包装原有的类。

代码:使用装饰器模式包装List类(给add()方法加强,给出提示)
装饰器类:

package com.example.java8.model.decoration;

import java.util.List;

/**
 * 装饰类
 * @param <T>
 */
public class DecorationList<T> {

    private List<T> list;

    public DecorationList(List<T> list) {
        this.list = list;
    }

    public boolean add(T t) {
        boolean flag = false;
        try {
            flag = this.list.add(t);
            System.out.println("添加成功");
        } catch (Exception e) {
            flag = false;
            System.out.println("添加失败");
        }
        return flag;
    }

}

测试类:

package com.example.java8.model.decoration;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class DecorationTest {

    @Test
    public void test() {
        List<String> list = new ArrayList<>();
        DecorationList<String> decorationList = new DecorationList<>(list);
        boolean add = decorationList.add("hello");
    }

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.初识装饰模式 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。 Compone...
    王侦阅读 799评论 0 0
  • 标签(空格分隔):装饰器模式 代理模式 装饰器模式:在不改变原有结构的情况下,允许动态的给一个现有对象添加一些额外...
    查无此人_chazz阅读 435评论 0 1
  • 介绍 装饰模式是一种结构型设计模式,是对原有的东西增加一些包装,再原有的基础上增添东西。如果我们想扩展已有的功能,...
    sunpy阅读 277评论 0 0
  • 前言: 在谈论装饰器模式之前,先谈一个笔者曾经遇到过的问题。游戏SDK(对游戏SDK开发不了解的话可以参考Andr...
    骑小猪看流星阅读 10,522评论 11 27
  • 装饰器模式 装饰器模式是一种旨在提升代码复用率的结构性模式。有点类似于混入模式,它被认为是一种可以替代子类的可行方...
    pws019阅读 409评论 0 0

友情链接更多精彩内容