设计模式-装饰者模式
来源:互联网 发布:阿里云邮箱地址前缀 编辑:程序博客网 时间:2024/05/17 11:05
装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。
简单案例:
public interface Hero { void learnSkills();}//------------------------------------------------------class BlindMonk implements Hero { private String name; public BlindMonk(String name) { this.name = name; } @Override public void learnSkills() { System.out.println(name + "学习了以上技能!"); }}//------------------------------------------------------//Decorator 技能栏:装饰类class Skills implements Hero{ //持有一个英雄对象接口 private Hero hero; public Skills(Hero hero) { this.hero = hero; } @Override public void learnSkills() { if(hero != null) hero.learnSkills(); } }//------------------------------------------------------//ConreteDecorator 技能:Rclass Skill_R extends Skills{ private String skillName; public Skill_R(Hero hero,String skillName) { //装饰父类对象 super(hero); this.skillName = skillName; } @Override public void learnSkills() { System.out.println("学习了技能R:" +skillName ); //装饰父类方法 super.learnSkills(); }}//------------------------------------------------------public class Test1{ public static void main(String[] args) { Hero hero = new BlindMonk("李青"); Skills skills = new Skills(hero); //Skill_R(Hero,SkillName); Skills r = new Skill_R(skills,"猛龙摆尾"); r.learnSkills(); }}
阅读全文
0 0
- 设计模式-装饰者模式
- 设计模式:装饰者模式
- 设计模式:装饰者模式
- 设计模式: 装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式------------装饰者模式
- 设计模式--装饰者模式
- 设计模式:装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 【设计模式】装饰者模式
- 设计模式---装饰者模式
- 设计模式 装饰者模式
- Python Django Mongodb
- Android 自动化测试经验
- document获取DOM节点的三种方法详解
- 简单工程模式
- 猜数字(线程)
- 设计模式-装饰者模式
- 用Oracle写分组计算数量后再合计,并得出百分数
- quartz(三):利用quartz定时执行运行环境检测
- matlab 彩色图和热力图叠加显示
- 三级联动
- css实现两边固定,中间自适应
- c编程之逆转比特位
- 遗传算法
- keil下载程序提示“Invalid ROM Table”的解决办法