Spring设计模式(装饰器模式)
Spring设计模式(装饰器模式)
模式的定义:
装饰者模式定义:
动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。
模式的结构图 :
模式包含角色 :
抽象构件类(Component):给出一个抽象的接口,用以规范准备接收附加责任的对象
具体构件类(ConcreteComponent):定义一个具体的准备接受附加责任的类,其必须实现Component接口。
装饰者类(Decorator):持有一个构件(Conponent)对象的实例,并定义一个和抽象构件一致的接口。
具体装饰者类(ConcreteDecoratator):定义给构件对象“贴上”附加责任。
使用场景 :
I/O流,数据源包装 ,Spring 中用到的装饰器模式在类名上有两种表现:一种是类名中含有 Wrapper,另一种是类名中含有Decorator。
模式具体实现 :
一 :基础类
@Data
public class Member {private String username;private String password;private String mid;private String info;
}
@Data
@AllArgsConstructor
public class ResultMsg {private int code;private String msg;private Object data;
}
二:抽象构件类
public interface SiginService {/*** 注册的方法* @param username* @param password* @return*/public ResultMsg regist(String username, String password);
}
三:装饰者类
public class RegistForThirdService implements SiginService {private SiginService siginService;public RegistForThirdService(SiginService siginService){this.siginService = siginService;}public ResultMsg registForQQ(String openId){return siginService.regist(openId,null);}public ResultMsg regist(String username, String password) {return siginService.regist(username,password);}
}
四 具体构件类
public class SiginServiceImpl implements SiginService {public ResultMsg regist(String username, String password) {return new ResultMsg(200,"注册成功",new Member());}
}
五:测试类
@Test
public void test(){RegistForThirdService siginService = new RegistForThirdService(new SiginServiceImpl());siginService.registForQQ("openId");
}
Spring设计模式(装饰器模式)相关推荐
- Python设计模式-装饰器模式
Python设计模式-装饰器模式 代码基于3.5.2,代码如下; #coding:utf-8 #装饰器模式class Beverage():name = ""price = 0.0 ...
- Go 设计模式 - 装饰器模式
装饰模式使用对象组合的方式动态改变或增加对象行为.Go语言借助于匿名组合和非入侵式接口可以很方便实现装饰模式.使用匿名组合,在装饰器中不必显式定义转调原对象方法. 设计模式 装饰器模式 装饰器模式主要 ...
- Java设计模式-装饰器模式 理论代码相结合
继Java设计模式适配器模式后的装饰器模式来啦,让我们一起看看吧. 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢,让我们一 ...
- 设计模式--装饰器模式
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装.简单来说,装饰器模式就是 ...
- PHP设计模式——装饰器模式
声明:本系列博客参考资料<大话设计模式>,作者程杰. 装饰器模式又叫装饰者模式.装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装 ...
- 设计模式-装饰器模式 C++
一.简介 1.什么是装饰器模式 装饰器模式是结构型设计模式. 装饰器是现有类的一个包装,可以在不修改现有类且不增加子类的情况下扩展现有类. [注]可以实现向一个现有对象添加新的功能,同时又不改变其结构 ...
- 设计模式---装饰器模式(C++实现)
装饰器模式(Decorator Pattern)允许向一个现有对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装饰类,用来包装原 ...
- C++设计模式 装饰器模式
文章目录 1. 先验知识 2. 装饰器模式相关概念 3. 装饰器模式的应用 3.1 应用1: 给形状添加新的特征 不同形状加红 3.2 应用2: 给一个人穿不同的衣服 a 直接person类, 增加穿 ...
- 白话设计模式-装饰器模式的使用和意义
装饰器模式展示 在学习设计模式的过程中,将自己对于设计模式的理解,以最简单,最白话的方式,分享给大家.个人觉得,对于设计模式的理解,需要将他从最抽象的理论里,真实的代入到实际的业务场景中,将会有最深刻 ...
最新文章
- SimpleInjector 简单使用
- # 可视化工具资源汇总
- Python并发编程:多线程-死锁现象与递归锁
- C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数
- 【CF113D】Museum【概率期望】【高斯消元】
- android monkey压力测试,Android-Monkey 压力测试
- C++笔记-lambda表达式需要注意的地方
- 数学建模1(历年问题与模型)
- linuxShell之一 文件读取 循环与分支
- 可以用来做ppt的网页效果
- Shell教程----Shell脚本
- HTML(三)选择器--复杂选择器
- ajax blockUI
- 机器学习——概率论基础
- Dell重装系统之官方原版系统
- twemproxy0.4原理分析-批量操作(mset,hset等)的实现原理
- 在Debian中网卡的设置
- 【转载】MAC OS X常用快捷键
- 利用手机作为渗透工具的一些思路
- 鸿蒙落 万物生(上)