装饰者模式 大嘴的身份
李大嘴喜欢杨惠兰,杨惠兰喜欢有钱,有能力,有气魄的男人,李大嘴不是她的菜,为了爱情,李大嘴决定改变自己
,于是他做了如下的改变:
男人这个物种:
public interface Man {/*** 什么样的男人*/void desc();
}
真正的李大嘴:
public class DaZui implements Man {public void desc() {System.out.println("李大嘴:男,年龄:26,婚否:至今未婚,特征:嘴大出奇,座右铭:最大吃八方");}
}
这样的李大嘴,杨慧兰看不上,于是掌柜和大伙一合计,决定给大嘴镀个金身:
变身器:
/*** 男人变身器* @author wjs**/
public class ManDecorator implements Man {//记录被装饰者private Man man;public ManDecorator(){}//把最新的装饰结果保存起来public ManDecorator(Man man){this.man=man;}public void desc() {man.desc();}
}
各种身份安到李大嘴的头上:
package com.sail.utils.decorator;//暴发户
public class DaoShen extends ManDecorator {public DaoShen(Man man){super(man);}public void desc() {System.out.println("盗圣。。。。。。。");super.desc();}
}//暴发户
class BaoFaHu extends ManDecorator {public BaoFaHu(Man man){super(man);}public void desc() {System.out.println("暴发户。。。。。。。");super.desc();}
}//关中大侠
class GuanZhongDaXia extends ManDecorator {public GuanZhongDaXia(Man man){super(man);}public void desc() {System.out.println("关中大侠。。。。。。。");super.desc();}
}//京城食神
class JinChengShiShen extends ManDecorator {public JinChengShiShen(Man man){super(man);}public void desc() {System.out.println("京城食神。。。。。。。");super.desc();}
}//武林盟主
class WuLinMenZhu extends ManDecorator {public WuLinMenZhu(Man man){super(man);}public void desc() {System.out.println("武林盟主。。。。。。。");super.desc();}
}/*** 犀利的老板* @author wjs**/
class LaoBan extends ManDecorator {private String name;public LaoBan(Man man,String name){super(man);this.name=name;}public void desc() {System.out.println(name+ " 的老板。。。。。。。");super.desc();}
}
是时候让杨慧兰见识传说中的李大嘴了:
public class DaZuiInStory {public static void main(String[] args) {Man dazui=new DaZui();dazui=new DaoShen(dazui);dazui=new WuLinMenZhu(dazui);dazui=new GuanZhongDaXia(dazui);dazui=new LaoBan(dazui,"同福客栈") ;dazui=new LaoBan(dazui,"微软") ;dazui=new JinChengShiShen(dazui);dazui.desc();}
}
杨慧兰最后看到的李大嘴:
京城食神。。。。。。。
微软 的老板。。。。。。。
同福客栈 的老板。。。。。。。
关中大侠。。。。。。。
武林盟主。。。。。。。
盗圣。。。。。。。
李大嘴:男,年龄:26,婚否:至今未婚,特征:嘴大出奇,座右铭:最大吃八方
装饰者模式 大嘴的身份相关推荐
- 九大常用设计模式学习-装饰者模式
设计模式学习记录:一句话+代码体会设计模式. 九大常用设计模式 单例模式:https://blog.csdn.net/qq_37902949/article/details/87903569 简单工厂 ...
- 大聪明教你学Java设计模式 | 第七篇:装饰器模式
前言 大聪明在写代码的过程中发现设计模式的影子是无处不在,设计模式也是软件开发人员在软件开发过程中面临的一般问题的解决方案.大聪明本着"独乐乐不如众乐乐"的宗旨与大家分享一下设计模 ...
- 转florian大神blog之 - 从实现装饰者模式中思考C++指针和引用的选择
http://www.cnblogs.com/fanzhidongyzby/archive/2012/11/19/2777943.html 最近在看设计模式的内容,偶然间手痒就写了一个"装饰 ...
- 设计模式学习----装饰器模式
这两天本来是自在学习java collection Framework的Fail Fast底层机制,看到核心的部分时,突然意识到设计模式的问题,上大学到现在我还没有真正理解过设计模式的概念,于是用了大 ...
- 装饰者模式 VS 建造者模式
先列了个架子,还没写完,争取明天写完!!! 1. 什么是设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结.使用设计模式的目的:为了代码可 ...
- 如何利用装饰者模式在不改变原有对象的基础上扩展功能
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:双子孤狼 blog.csdn.net/zwx9001 ...
- 3年工作必备 装饰器模式
故事 古话说的好:人靠衣裳马靠鞍.下面先带大家来熟悉这句话的背景: 人靠衣装马靠鞍,狗配铃铛跑的欢出自沈自晋<望湖亭记>第十出:"虽然如此,佛靠金装,人靠衣装,打扮也是很要紧的. ...
- 设计模式 装饰者模式 带你重回传奇世界
今天继续设计模式之旅,给大家带来装饰者模式,国际惯例,先看定义. 装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上. 先简单描述下装饰者模式发挥作用的地方,当我 ...
- Java设计模式(装饰者模式-组合模式-外观模式-享元模式)
Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...
最新文章
- 2022-2028年中国女式西装行业研究及前瞻分析报告
- Python书单,不将就
- python没有上方工具栏_Python体验(08)-图形界面之工具栏和状态栏
- 计算机学院可以表演的小品,中央戏剧学院小品表演真题之单人小品
- 2015_6_16-开博第一天
- Spring点滴二:Spring Bean
- @Controller,@Service,@Repository,@Component详解
- Android 系统(124)---Android 如何快速写满存储空间
- 快速构建Windows 8风格应用34-构建Toast通知
- JNDI RMI 注入(Log4j2漏洞)
- dns代表计算机哪个术语,windows dns 术语解释
- JQuery 动画之 淡入淡出
- LINUX下载编译python
- QTP11的下载地址和破解教程
- 【记一下1】2022年6月29日 哥和弟 双重痛苦
- ESP8266串口透传+WiFi储存+OTA+smartconfig/airkiss
- Vijos P1197 费解的开关
- 路由器端口映射,远程桌面连接--端口映射+花生壳=让人访问你个人服务器或WEB站点...
- EOS智能合约开发系列(16): deferred action与inline action
- 2018焦作ICPC E - Resistors in Parallel(规律+Java大数)
热门文章
- 小米持续制造尖叫的三个关键词
- 谷歌(Google): reCaptcha(3.0版本)做网站验证
- 运行Scrapy crawl出错
- 【信管5.2】估算活动资源与持续时间
- [432]Unicode不可见字符
- button属性的值和说明
- Python:pandas groupby实现类似excel中averageifs函数的功能
- rk3399常见便捷设置汇总(免密登录/汉字输入法/时间校正等)
- LabVIEW - DAQmx 数据采集
- java web应用程序设计填空题_Java Web程序设计题库答案