目录

Person类

装饰抽象类

装饰抽象类具体实现类

客户端代码


Person类

public class Person {private String name;public Person(){}public Person(String name) {this.name = name;}public void show(){System.out.print("装扮的"+name);}
}

装饰抽象类

/*** 服饰类*/
public class Finery extends Person {protected Person component;public void decorate(Person component){this.component = component;}@Overridepublic void show(){if(component!=null)component.show();}
}

装饰抽象类具体实现类

/*** 具体服饰类--T恤*/
public class TShirts extends Finery{@Overridepublic void show() {System.out.print("大T恤 ");super.show();}
}
/*** 垮裤*/
public class BigTrouser extends Finery {@Overridepublic void show() {System.out.print("垮裤 ");super.show();}
}
/*** 破球鞋*/
public class Sneakers extends Finery {@Overridepublic void show() {System.out.print("破球鞋 ");super.show();}
}
/*** 领带*/
public class Tie extends Finery {@Overridepublic void show() {System.out.print("领带 ");super.show();}
}
/*** 皮鞋*/
public class LeatherShoes extends Finery {@Overridepublic void show() {System.out.print("皮鞋 ");super.show();}
}
/*** 西装*/
public class Suit extends Finery {@Overridepublic void show() {System.out.print("西装 ");super.show();}
}

客户端代码

/*** 客户端代码*/
public class TestMain {public static void main(String[] args) {Person xc = new Person("小菜");System.out.println("\n 第一种装扮: ");Sneakers sneakers = new Sneakers();BigTrouser bigTrouser = new BigTrouser();TShirts tShirts = new TShirts();sneakers.decorate(xc);bigTrouser.decorate(sneakers);tShirts.decorate(bigTrouser);tShirts.show();System.out.println("\n 第二种装扮: ");LeatherShoes leatherShoes = new LeatherShoes();Tie tie = new Tie();Suit suit = new Suit();leatherShoes.decorate(xc);tie.decorate(leatherShoes);suit.decorate(tie);suit.show();}
}

大话设计模式学习笔记 -- 装饰模式相关推荐

  1. 大话设计模式学习笔记(6)——装饰模式

    问题提出 为一个模特穿衣服.要求根据用户的需求能够有不同的装扮.(注意要符合我们的几个原则--依赖倒转,开放闭合,单一职责等). 穿衣过程暴露在外 class Main {public static ...

  2. 大话设计模式学习笔记C++

    一.简单工厂模式 1.面向对象的好处 通过封装.继承.多态把程序的耦合度降低. 用设计模式使得程序更加的灵活,容易修改,并且易于复用. 如实现计算机的功能时,将业务逻辑与界面逻辑分开,让它们的耦合度下 ...

  3. java设计模式学习笔记之装饰模式

    java设计模式学习笔记之装饰模式 尊重原创,转载请注明出处,原文地址: http://blog.csdn.net/qq137722697 这是一个使用策略模式和构建模式设计的网络请求框架,去看看吧& ...

  4. 设计模式学习笔记清单

    设计模式学习笔记清单 关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累.      ...

  5. 步步为营 .NET 设计模式学习笔记系列总结

    设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...

  6. 设计模式学习笔记——装饰(Decorator)模式

    设计模式学习笔记--装饰(Decorator)模式 @(设计模式)[设计模式, 装饰模式, decorator] 设计模式学习笔记装饰Decorator模式 基本介绍 装饰案例 类图 实现代码 Dis ...

  7. 设计模式学习笔记(目录篇)

    设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1   设计模式学习笔记(一:命令模式) 2   设计模式学习笔记(二:观察者模式) 3   设计模式学习笔记(三 ...

  8. 设计模式学习笔记(C++实现)(九)--组合模式

    1.组合模式简介 英文名称 Composite 主要目的 该模式将对象组合成树形结构已表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性. 使用场景 1.当 ...

  9. 设计模式学习笔记--享元(Flyweight)模式

    写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...

最新文章

  1. win7查看某个端口被占用的解决方法
  2. idea使用MybatisCodeHelperPro逆向生成(亲测)
  3. 同步器 java_您可能不知道的五个高级Java同步器
  4. 四川省盐业学校九五计算机,2020年四川省盐业学校招生录取分数线
  5. 如何禁用 MacBook 在打开盖子时自动启动功能
  6. 腾讯浏览器(X5WebView的使用)
  7. 导线平差5800全能程序
  8. 搜狗推送工具-搜狗批量提交软件
  9. latex调整caption字体大小
  10. 一文搞懂CSS 3D动画效果
  11. 伊利洛伊大学厄巴纳-香槟分校计算机专业,伊利诺伊大学厄巴纳香槟分校哪些专业比较好?...
  12. android 渠道排名,安卓APP渠道效果统计***排名
  13. java 学习7.13 正则表达式 Pattern和Matcher类 Math类 Random类 System类 BigDecimal类 Date类 SimpleDateFormat类 Cale
  14. 天马杯-NLP赛道(科技新闻分类与摘要)赛后总结
  15. 湿度和温度对计算机设备的影响,简述环境温度的变化对机房设备的影响
  16. 靠谱分3个层次,你在哪一层?做到第3层才会有开挂的人生
  17. 苹果发布会在即 iMessage将迎来哪些重大更新?
  18. 两本 PDF + 一个插件:labuladong 刷题三件套正式发布
  19. 宜阳一高2021高考成绩查询,洛阳人看过来!汝阳一高、宜阳一高、偃高2020年高考喜报...
  20. 11个超高清图片素材网站,可直接访问

热门文章

  1. n5100和n5105哪个好
  2. Python数据攻略-数据特征处理标准化和归一化
  3. mysql parquet_Spark与Apache Parquet
  4. 新星计划2023: SSM旅游网站项目实战
  5. vue引用动态gif图片
  6. 选择排序(1)------直接选择排序
  7. 10.智能快递柜(源码下载)
  8. python成语接龙到为所欲为_ParisGabriel:Python全栈工程师(0基础到精通)教程 第十八课(递归函数、闭包)...
  9. Geant 4创建TCP客户端,自定义宏命令,输出探测器能量
  10. 项目执行maven update时,报:Preference node org.eclipse.wst.validation...