java设计模式学习之装饰模式
2017-10-12 11:05
676 查看
装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。
优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
缺点:多层装饰比较复杂。
实例:给一个人配置穿衣
1:代码结构图
2:创建一个person类( ConcreteComponent)
package DecoratorModel; /** * 2017-10-9 10:39:09 * 装饰器设计模式 * Person 类 ConcreteComponent * @author 我不是张英俊 * */ public class Person { public Person(){} private String name; public Person(String name){ this.name=name; } public void Show(){ System.out.println("装扮的"+name); } }
3:服饰类
package DecoratorModel; /** *服饰类(Decorator) * @author 我不是张英俊 * */ public class Finery extends Person{ protected Person component; //打扮 public void Decorate(Person component){ this.component=component; } public void Show(){ if(component!=null){ component.Show(); } } }
4:具体服饰类
public class Tshirts extends Finery { public void Show(){ System.out.println("大T恤"); super.Show(); } } public class BigTrouser extends Finery { public void Show(){ System.out.println("垮裤"); super.Show(); } } public class Sneakers extends Finery { public void Show(){ System.out.println("破球鞋"); super.Show(); } } public class Suit extends Finery { public void Show(){ System.out.println("西装"); super.Show(); } } public class Tie extends Finery { public void Show(){ System.out.println("领带"); super.Show(); } } public class LeatherShoes extends Finery { public void Show(){ System.out.println("皮鞋"); super.Show(); } }
5:测试类
public class test { public static void main(String[] args) { Person xc=new Person("旺财"); Sneakers pqx=new Sneakers(); BigTrouser kk=new BigTrouser(); Tshirts dtx=new Tshirts(); pqx.Decorate(xc); kk.Decorate(pqx); dtx.Decorate(kk); dtx.Show(); } }
6:控制台
大T恤
垮裤
破球鞋
装扮的旺财
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Java设计模式之装饰模式分享学习
- java学习之IO装饰设计模式
- java 设计模式学习笔记九 decorator装饰模式
- Java设计模式学习09——装饰模式
- 黑马程序员-Java学习笔记之设计模式(单例设计模式,装饰设计模式,模板设计模式)
- 黑马程序员——学习Java基础之 io LineNumberReader 之装饰设计模式
- 黑马程序员-JAVA学习之装饰设计模式与自定义BufferedReader
- 从装饰设计模式角度学习JavaIO字节流
- java 设计模式 学习笔记(5) 装饰模式
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- Java设计模式学习记录-装饰模式
- 设计模式学习笔记---装饰模式decorator(Java版)
- java 设计模式学习笔记九 decorator装饰模式
- java设计模式学习笔记之装饰模式
- Java IO学习【10】装饰设计模式
- 黑马程序员 java学习笔记3-IO流之字节流与装饰设计模式
- Java设计模式学习09——装饰模式
- Java学习日志(19-2-IO流-装饰设计模式与LineNumberReader)
- JAVA学习第四十九课 — IO流(三):缓冲区2 & 装饰设计模式
- 8.2_java学习_装饰设计模式