设计模式之Decorator——家装篇

信贷风控实战指南:Vintage分析表从数据建模到风险洞察 本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。 阅读详情

最近家里搞装修,做了一套家具,需要刷一下漆,因此我就去市场找了油漆师傅和油漆徒弟两个人。

油漆师傅主要买油漆和调油漆,油漆徒弟主要来刷油漆(团队精神?哈哈,不禁让让我想起CS,你先冲,我拣菜。)。

1、在这里,我们先把这个油漆工作定义成一个接口类:

public interface Work

{

  public void  brush();   //刷油漆

}

 

2、因为油漆师傅和油漆徒弟的任务是刷油漆,因此他们要对Work接口进行实现:

A:油漆徒弟

刷油漆的工作主要是由油漆徒弟来完成,所以我们把油漆徒弟定义成Brusher(油漆师傅在一旁说:“徒弟吗,就是要多干活。”,油漆徒弟小声嘀咕:“多你个头。”)。

public class Brusher implements Work{

  public void brush() {

    System.out.println("刷油漆");

  }

}

B:油漆师傅

我们把油漆师傅定义成Decorator。

public class Decorator implements Work{

  private Work work;

//油漆师傅的工作被放置在这个List中

  private ArrayList prework = new ArrayList();

//油漆师傅的默认工作

  public Decorator(Work work) {

    this.work = work;

    prework.add("买油漆");

    prework.add("调油漆");

  }

 

  public void brush() {//刷油漆, 油漆师傅也要实现此方法

    newWork();         //当油漆师傅接到活,就开始一个新的工作

  }

 

//新的工作

  public void newWork() {

    preWork();      //油漆师傅做的前期辅助工作

    work.brush();   //让徒弟干的刷油漆的工作

  }

 

//油漆师傅做的前期辅助工作

  public void preWork() {

    ListIterator listIterator = prework.listIterator();

    while (listIterator.hasNext()) {

      System.out.println( ( (String) (listIterator.next())) + "完成");

    }

  }

3、编写测试类:

public class test {

  public static void  main(String args[]) {

    Work bursher = new Brusher();

    Work decorator = new Decorator(bursher); 

    decorator.brush();

   //我把活交给油漆师傅,油漆师傅下来再把实际刷油漆的工作指派给油漆徒弟干

  }

 

4、说明:

A:代码只用来学习Decorator模式,要运行的话,必须要做一点改动。

B:在这过程中,我只和油漆师傅打交道,具体的刷油漆那是由油漆师傅和油漆徒弟之间的事,我是不用关心的。

C:使用Decorator的理由是:这些功能需要由用户动态决定加入的方式和时机.Decorator提供了"即插即用"的方法,在运行期间决定何时增加何种功能.

温度PID控制PLC程序 温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值 立即下载

相关推荐

Nest的限流方案

多维度限流(如 IP、用户 ID、接口级别、请求类型)可配置化(支持不同环境和接口动态配置)可观测性(接入日志、监控系统)高性能和分布式支持(Redis 限流器)与鉴权鉴权链路集成(结合 JWT、API Token)以下是一个“标准// 优先按用户ID限流,否则按IP在main.ts维度建议限流存储推荐 Redis 支持多实例限流 Key 设计支持 IP + 用户ID + 路由等多种维度限流策略精细化配置,接口粒度调整异常处理自定义响应体、日志告警观测性。

Bruce__taotao的博客 1196

设计模式之Memento——系统篇(原创)

设计模式之Memento——系统篇  经常使用计算机的人恐怕对系统备份(Memento)不会陌生,当你的Windows系统运行正常时,对它进行备份,当系统运行有问题时,就可以调用备份快速的将系统恢复,这样就可以大量节省重新装系统的痛苦,特别是当你缺少某一驱动,或在装系统是出现一些怪问题时,犹为痛苦。我想有过这种经历的人应该很了解吧,呵呵!好了,下面让我们看看这个过程该如何实现吧:

lxgljj的专栏 4151

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1123

设计模式之Decorator——家装篇(原创)

设计模式之Decorator——家装篇 最近家里搞装修,做了一套家具,需要刷一下漆,因此我就去市场找了油漆师傅和油漆徒弟两个人。油漆师傅主要买油漆和调油漆,油漆徒弟主要来刷油漆(团队精神?哈哈,不禁让让我想起CS,你先冲,我拣菜。)。1、在这里,我们先把这个油漆工作定义成一个接口类:public interface Work{  public void  brush()

lxgljj的专栏 2683

如何用谷歌插件Apollo.io高效开发客户?手把手教你避开常见坑点

本文详细介绍了如何利用谷歌插件Apollo.io高效开发外贸客户,包括核心功能解析、免费额度最大化利用策略、多插件协同技巧以及常见陷阱规避方法。通过Apollo.io的智能匹配算法和庞大数据库,外贸从业者可以精准锁定目标客户,提升开发效率。

banana的博客 885

【Xilinx】如何在petalinux下编译vcu-gst-app以及独立编译vcu-gst-app

Xilinx从2018.1开始,提供了一套基于zcu106的vcu参考设计。里面提供了一套基于GStreamer的程序,即vcu-gst-app。如何脱离petalinux直接编译呢,这里以为例,其他版本也是类似的操作。

王师傅 3039

设计模式之Decorator(家装篇)

最近家里搞装修,做了一套家具,需要刷一下漆,因此我就去市场找了油漆师傅和油漆徒弟两个人。           油漆师傅主要买油漆和调油漆,油漆徒弟主要来 刷油漆(团队精神?哈哈,不禁让让我想起 CS ,你先冲,我拣菜。)。          1 、在这里,我们先把这个油漆工作定义成一个接口类:           public interface Work           {         

Net 404

AttifyOS 3.0实战:从固件提取到物联网设备安全评估全流程解析

本文详细解析了使用AttifyOS 3.0进行物联网设备安全评估的全流程。从获取D-Link路由器固件开始,到利用其预置的Binwalk等工具完成固件提取、解包Squashfs文件系统,并深入分析Web源码进行初步安全审计。这套集成系统极大简化了环境配置,让研究人员能专注于漏洞挖掘本身,是物联网安全评估的高效工具箱。

ice55的博客 214

Decorator设计模式

Decorator 动机(Motivation) 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。 如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响...

量子象限 388

MATLAB实战:5步搞定铣削稳定性叶瓣图(附完整代码解析)

本文提供了一份基于MATLAB的铣削稳定性叶瓣图实战指南。通过5个清晰步骤,从动力学原理出发,详细解析了利用半离散法构建稳定性判据、模块化代码设计、高效参数扫描及高级可视化的完整流程,并附有完整代码,帮助工程师快速预测和规避加工颤振,优化铣削工艺参数。

weixin_29197051的博客 194

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

算法大师! 622

Hyperf 極簡 DB 元件實戰指南:輕量 PDO 封裝、連線池與多庫配置全解析

本指南以 Hyperf 官方元件 `hyperf/db` 為核心,深入講解這套「極簡資料庫存取層」的安裝、配置、API 使用與底層運作原理。有別於功能完整但較為厚重的 `hyperf/database`,`hyperf/db` 直接封裝 PDO 與連線池,特別適合追求極致效能、只需要原生 SQL 的微服務與中介層場景。讀完本文,你將掌握 `hyperf/db` 的全部配置參數、五種核心方法、多庫切

gitblog_00731的博客 619

如何让C++程序生成dump文件?生成dump文件的方式有哪些?如何使用Windbg分析dump文件?

本文详细介绍了如何让C++程序生成dump文件、生成dump文件的多种方式以及如何使用Windbg分析dump文件,并给出了对应的实战分析案例,有一定的实战参考价值。

dvlinker的技术专栏 5万+

设计模式(JAVA)——Decorator模式

设计模式(java)之decorator

读书 好学 求知 288

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

设计模式学习(十二):Decorator装饰器模式

假如现在有一块蛋糕,如果只涂上奶油,其他什么都不加,就是奶油蛋糕。如果加上草莓,就是草莓奶油蛋糕。如果再加上一块黑色巧克力板,上面用白色巧克力写上姓名,然后插上代表年龄的蜡烛,就变成了一块生日蛋糕。不论是蛋糕、奶油蛋糕、草莓蛋糕还是生日蛋糕,它们的核心都是蛋糕。不过,经过涂上奶油,加上草莓等装饰后,蛋糕的味道变得更加甜美了,目的也变得更加明确了。程序中的对象与蛋糕十分相似。首先有一个相当于蛋糕的对象,然后像不断地装饰蛋糕一样地不断地对其增加功能,它就变成了使用目的更加明确的对象。

m0_49499183的博客 2492

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[DP]Decorator设计模式

Decorator设计模式,装饰器设计模式,io流中的装饰器模式,spring中的装饰器模式

HeapStackk的博客 525

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

设计模式(结构型——Decorator模式)

设计模式八、Decorator模式8.1 Decorator模式的概念8.2 Decorator模式的实现 八、Decorator模式 8.1 Decorator模式的概念 使用场景 与Bridge模式的应用场景有些许类似。都是由于类需要在不同维度上进行拓展,如果单单通过继承的方式,每种组合的关系都定义出一个类,耦合程度非常高,且类的数量也会非常庞大。 不同之处 Bridge模式应对的是多维度且固定的拓展,例如,坦克游戏中的坦克模型有型号之分,且每种型号的坦克在不同的平台上都有对应的实现;一辆坦克,必

qq_37112587的博客 355

【设计模式】Decorator模式

目录 动机(Motivation) 模式定义 实例 Decorator模式的结构 要点总结 动机(Motivation) *在某些情况下我们可能会“过度使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使这种扩展方式缺乏灵活性;并且随着子类的过度增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多的子类膨胀。 *如何使“对象功能的扩展“能够根据需要动态地...

qq_28011221的博客 261

【C++设计模式之Decorator装饰模式】

Decorator装饰模式是一种动态扩展对象功能的设计模式,通过组合而非继承来增加对象的职责,避免了继承带来的类膨胀问题。该模式的核心思想包括动态扩展、透明性和组合优于继承。

weixin_43488529的博客 1187

图解设计模式 (十二)Decorator 模式

读书笔记 仅供参考 简述 Decorator 模式(装饰着模式)是维持装饰边框和装饰物的一致性,为对象增加新的功能,但是它还是原来的对象 UML 和角色 Component 增加功能的核心角色,就像是一块蛋糕(抽象),可以被添加很多奶油和水果。Component 定义了蛋糕的接口(API)。 ConcreteComponent 实现了 Component 角色定义的接口(API)的具体蛋糕。 Decorator 具有与 Component 角色相同的接口(API),在内部保存了被装饰对象—

zhangmiaoping23的专栏 707

Java设计模式之Builder和Decorator

Java设计模式                                        之                            Builder和Decorator 1、建造者模式(Builder) 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工

848

设计模式:装饰模式(Decorator)

设计模式:装饰模式(Decorator)

ProgramNovice的博客 1782
上一篇: 设计模式之Facade——家庭篇
下一篇: 设计模式之Visitor——送礼篇
cyokin
博客等级 码龄24年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值