Java装饰模式

2 篇文章 0 订阅
订阅专栏

目录

 

一、装饰模式概念

二、装饰模式中的角色

三、代码案例实现


一、装饰模式概念

装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。

二、装饰模式中的角色

三、代码案例实现

package com.lx.decorator;

public interface Component {
    public void doThingA();
}
package com.lx.decorator;

public class ConcreteCompoment implements Component{
    @Override
    public void doThingA() {
        System.out.println("do A Thing");
    }
}
package com.lx.decorator;

public class Dercorator implements Component{
    private Component component = null;

    public Dercorator(Component component) {
        this.component = component;
    }

    @Override
    public void doThingA() {
        System.out.println("do A thing");
    }
}
package com.lx.decorator;

public class ConcreteDecoratorA extends Dercorator{
    public ConcreteDecoratorA(Component component) {
        super(component);
    }

    @Override
    public void doThingA() {
        super.doThingA();/*调用被包装类的方法*/
        doThingB();
    }
    /*扩展功能*/
    private void doThingB(){
        System.out.println("do B thing");
    }
}
package com.lx.decorator;

public class ConcreteDecoratorB extends Dercorator{
    public ConcreteDecoratorB(Component component) {
        super(component);
    }

    @Override
    public void doThingA() {
        super.doThingA();/*调用被包装类的方法*/
        doThingC();
    }
    /*扩展功能*/
    private void doThingC(){
        System.out.println("do C thing");
    }
}

Java设计模式之一:装饰器模式
杨荧的CSDN博客
07-03 2548
Java设计模式之一:装饰器模式
java 装饰模式
12-25
java 设计模式 装饰模式,希望对大家理解设计模式有帮助
java设计模式之:装饰器模式
初念初恋的博客
06-12 1334
装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。
设计模式】用Java实现装饰模式
分享Java硬核干货
06-30 9669
装饰模式(Decorator Pattern)是一种结构型设计模式它允许在不改变现有对象结构的情况下,动态地将责任附加到对象上。装饰模式通过将对象包装在装饰器对象中,形成一条装饰链,每个装饰器对象都可以在被装饰对象的行为前后加上自己的行为。装饰模式的核心思想是通过组合而不是继承来扩展对象的功能。它遵循开放-关闭原则,即对扩展开放,对修改关闭,使得我们可以在不修改现有代码的情况下,灵活地添加新的功能。应用场景:需要在不改变现有对象结构的情况下,动态地为对象添加额外的功能。
Java设计模式装饰模式
最新发布
DarkComxEating的博客
04-15 855
本篇文章详细介绍了设计模式中的装饰模式,并分析了装饰模式的优点和用处。
设计模式装饰模式 Java代码实现
01-28
设计模式装饰模式 Java代码实现;另由本人所写,转载请注明原址。
装饰模式 java_java设计模式装饰模式
weixin_39563420的博客
02-12 183
java设计模式装饰模式导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面我们来看看装饰模式,希望对大家有所帮助。装饰模式(Decorator Pattern):在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。...
详解java装饰模式(Decorator Pattern)
09-02
主要为大家详细介绍了java装饰模式Decorator Pattern,这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装,对装饰器模式感兴趣的小伙伴们可以参考一下
java装饰模式实例
04-20
通过设计组装和升级大众CC来说明装饰模式,有一个VolkCC类实现Volk接口,设计一个CCDecorator实现Volk这个接口,在ConcreteCCDecorator这个具体装饰角色中进行功能的增加和重写。
java装饰模式
03-22
该文档描述了java装饰模式装饰模式javaIO流底层所采用的设计模式
Java装饰模式(Decorator模式)
12-22
Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee。这两种实体在Decorator模式中是必须的。  Decorator定义:动态给一个对象添加...
java设计模式--装饰模式
ChanYee的博客
07-06 657
装饰模式: 动态的将责任附加给了对象,使对象易于横向和总想扩展,提供了比继承更有弹性的替代方案。我们来看一下代码片段 创建一个要唱歌的人/** * @author Lichenyi * @date 2017-7-6 */ public interface Human { public void sing(); }//把这个人包装成为一个歌手/** * @author Lichen
Java设计模式实战 ~ 装饰模式探究
Chiclaim
09-15 7513
本文详解介绍了装饰模式的原理、使用场景,通过日志案例介绍装饰模式的优势,最后分了装饰模式和适配器模式的区别
Java 装饰模式
zhangyupeng的博客
05-13 184
1、基本概念 官方术语:装饰模式就是给一个对象动态增加一些功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。 大白话:说白了就是给一个对象新加一些功能,但不能在对象本书里做修改,就是不能违背开闭原则。 优点:可以实现一个类的功能扩展,动态的增加,动态撤销。 缺点:产生过多相似对象,不好排错。 2、代码实现 「接口」装饰类和被装饰类要实现的接口 public interface Sourceable{ void met...
装饰模式
热门推荐
lenotang的专栏
06-26 1万+
       看过请留个言,转载请注明出处,尊重作者劳动成果,谢谢! 现在我们来学习装饰模式。说实话,真不想写这个,因为提到这个装饰,程序员就很伤感(我也是),就想到了遥远地她和虚无缥缈地房子。房子都还没着落,谈什么装修和粉饰啊。一堵粗糙的墙,刷上白白地粉,再贴上几张壁画,整个一焕然一新。多美的事啊。哎,既然想到了,就咬着牙多想会,至少心里还有个期盼。真心祝愿大家看完这篇文章后都能够梦想成
Java设计模式装饰模式
Daniel丶
04-06 182
Java设计模式装饰模式 首先我们来看这张图 其中Waiter是一个接口 里面定义了service方法 其中Waitress 实现了这个接口然后实现了该方法 但是我想改变Waitress里面的service的方法(前提是Waitress里面的代码不能更改 而且也不用继承 那么我该怎么办?) 别着急 往下看 引出了装饰模式 WaitressWrap 来看上面这段代码 同样实现了Wai...
Java设计模式之装饰者模式
红日
12-13 5516
Java设计模式之装饰者模式目录一、定义二、具体实现三、使用场景四、优缺点 目录 装饰者模式是结构性设计模式之一,其在不必改变类文件及不使用继承的情况下,动态地扩展一个对象的功能。它通过创建一个包装对象(即装饰)来包裹真实的对象。 一、定义 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 装饰着模式的结构图: 如上结构图所示,装饰者模式中有如下角色: Component:可以是接口或者是抽象类,被装饰的最原始的对象。 ConcreteComponent:组件具体实现类。
【重温设计模式装饰模式及其Java示例
万猫学社
03-01 1084
在我们的编程世界中,有一种设计模式叫做装饰模式,它以一种独特的方式赋予了代码更多的灵活性。装饰模式是一种结构型设计模式,它允许我们在运行时动态地为对象添加新的行为。这就像是我们在装饰一个房间时,可以随意添加或更换装饰品,而不需要对整个房间进行改造。装饰模式的特点是,它可以保持代码的清晰和简洁,同时提供了强大的扩展性。这种模式在很多场景中都有应用,比如在Java的IO流中,我们就可以看到装饰模式的影子。@Override在上面的Java代码示例中,我们定义了一个基类OneMore和一个装饰器类。
JAVA设计模式装饰模式
小朋友的博客
06-17 543
装饰者模式
java 装饰模式类图
12-26
以下是一个简单的Java装饰模式类图: ``` +---------------------+ | Component | +---------------------+ | | + Interface: Component | +-------------+ ------> ConcreteComponent | +---------------...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Java给定一个正整数n,求1+2+3+...+n之和并输出。 3580
  • HTML+CSS制作仿制当当网 3239
  • Java 随机产生四位验证码 3168
  • Java1到100之间的奇数之和与偶数之和 2238
  • Java从键盘输入一个字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII码表中的下一个字符。 2042

分类专栏

  • 安卓开发 1篇
  • 框架 2篇
  • Java设计模式 2篇
  • JSON 1篇
  • 项目练习 2篇
  • jQuery 12篇
  • Java编程题 8篇
  • javasscript 2篇
  • 算法 1篇
  • 数据库 3篇
  • Java 12篇
  • html 1篇

最新评论

  • SpringBooot

    杪&秋: 好的,主要是是我自己学习用的,谢谢提醒啊

  • SpringBooot

    SSS4362: 作者你好,你标题打错了,是SpringBoot吧,多打了个o啊

  • JDBC连接数据库案例

    Marydon: 把美女交出来

  • json基本使用与简介

    皮卡!: 才学到这

大家在看

  • 5.mongodb 备份与恢复 279
  • 研导AI智能撰写,洞见未来
  • SJ708-II安全帽垂直间距配带高度测量仪 149
  • 分享4款免费无广告看小说app,喜欢看小说的不要错过! 356
  • 最新《开源大模型食用指南》已发布,速通LLM大模型(文档分享)

最新文章

  • Kotlin
  • SpringBooot
  • Mybatis
2023年4篇
2022年43篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杪&秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

4617作文网周公解梦梦见过年柠檬起店名去算命要注意什么周公解梦云彩免费占星算命水字属性男孩起名周易测公司名是周易名字大全经常做噩梦如何解决翔是什么意思起名好吗周易测名字打分测试周公解梦梦见杀鸡八字纳音算命姓吴的,起什么名好呢?涪陵周易园旅游景点大全排名梦见丢东西是什么意思周公解梦梦解周公解梦大全9630女装衣服店铺起名2019男孩起名常用字周公解梦做梦梦到蛇周易第十卦原文中药起名字的属牛起什么名字好男孩沈阳市周易研究会比较有个性女孩起名用乐字起名笙名起名给姓钱的男宝宝起名字不知生辰八字怎么算命周易八字五行起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测

4617作文网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化