Java装饰器模式实例分析
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,今天小编给大家分享一下Java装饰器模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
千家信息网最后更新 2025年01月21日Java装饰器模式实例分析
今天小编给大家分享一下Java装饰器模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
优点
1.装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
缺点
2.多层装饰比较复杂。
使用场景
1.扩展一个类的功能。
2.动态增加功能,动态撤销。
一、实现方式
假设一个场景,我们房间每天起床都要刷牙, 睡觉也要刷牙,刷牙的动作就是一个装饰器的作用,这样更利于我们的口腔健康。接下来我们就看看具体的装饰器如何实现。
1、每天生活的接口
package com.asurplus.common.decorator;/** * 每天的生活接口 */public interface Live { /** * 每天需要做的事情 */ void live();}
2、起床的实现类
package com.asurplus.common.decorator;import lombok.extern.slf4j.Slf4j;/** * 起床实现类 */@Slf4jpublic class GetUpLive implements Live { @Override public void live() { log.info("起床了"); }}
3、睡觉的实现类
package com.asurplus.common.decorator;import lombok.extern.slf4j.Slf4j;/** * 睡觉实现类 */@Slf4jpublic class SleepLive implements Live { @Override public void live() { log.info("睡觉了"); }}
4、装饰器类
package com.asurplus.common.decorator;import lombok.extern.slf4j.Slf4j;/** * 装饰器类 */@Slf4jpublic class LiveDecorator { private Live live; public LiveDecorator(Live live) { this.live = live; } public void live() { // 生活 live.live(); // 刷牙 brushTeeth(); } private void brushTeeth() { log.info("刷牙去咯"); }}
二、测试
package com.asurplus.common.decorator;/** * 装饰器模式 */public class TestMain { public static void main(String[] args) { // 起床 LiveDecorator getUp = new LiveDecorator(new GetUpLive()); getUp.live(); System.out.println(); // 睡觉 LiveDecorator sleep = new LiveDecorator(new SleepLive()); sleep.live(); }}
输出结果
可以看出,起床和睡觉,都刷了牙,从而实现了我们的装饰器模式。
以上就是"Java装饰器模式实例分析"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
模式
知识
篇文章
功能
动态
生活
实例
实例分析
分析
内容
场景
就是
接口
不同
复杂
很大
健康
接下来
事情
优点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发代理公司哪家好
安卓软件开发的书
阿里云云数据库mysql服务器
双线服务器
软件开发工程量的计算原理
湘西软件开发大专学校
简述工程数据库的特性
网络安全工程师证好不好考
数据库连接技术的四种方式
我国网络安全现状商务安全
人行服务器
麒麟系统怎么连接本地数据库
吉林潮流软件开发服务应用
友好的数据库备注管理方法
民航事故数据库
数据库mc升级中啥意思
云算中心安全服务器
某软件开发项目
数据库设计有什么工作
一个软件开发公司多少人
什么是isql数据库
吉林果蔬配送软件开发
新斗罗大陆服务器表
运维管理被攻击的服务器
一个数据库两个实例 启动
软件开发没有进项票
实用网络技术 大纲
网络安全相关技术原理
湖北办公系统软件开发定制费用
服务器管理员怎么输代码