java设计模式之装饰者模式

转载 2015年07月09日 17:19:39

实例代码:

// 抽象类 Girl
public abstract class Girl {
    String description = "no particular";

    public String getDescription(){
        return description;
    }
}

// 美国女孩
public class AmericanGirl extends Girl {
    public AmericanGirl() {
        description = "+AmericanGirl";
    }
}

// 国产妹子
public class ChineseGirl extends Girl {
    public ChineseGirl() {
        description = "+ChineseGirl";
    }
}

// 装饰者
public abstract class GirlDecorator extends Girl {
    public abstract String getDescription();
}

// 下面以美国女孩示例
// 给美国女孩加上金发
public class GoldenHair extends GirlDecorator {

    private Girl girl;

    public GoldenHair(Girl g) {
        girl = g;
    }

    @Override
    public String getDescription() {
        return girl.getDescription() + "+with golden hair";
    }

}

// 加上身材高大的特性
public class Tall extends GirlDecorator {

    private Girl girl;

    public Tall(Girl g) {
        girl = g;
    }

    @Override
    public String getDescription() {
        return girl.getDescription() + "+is very tall";
    }

}


// 检验一下
public class Main {

    public static void main(String[] args) {
        Girl g1 = new AmericanGirl();
        System.out.println(g1.getDescription());

        GoldenHair g2 = new GoldenHair(g1);
        System.out.println(g2.getDescription());

        Tall g3 = new Tall(g2);
        System.out.println(g3.getDescription());

        // 你也可以一步到位
        // Girl g = new Tall(new GoldenHair(new AmericanGirl())); 
    }
}


Java设计模式-装饰者模式

  • 2015年05月20日 16:57
  • 18KB
  • 下载

java设计模式之装饰者模式代码

  • 2016年05月13日 06:55
  • 9KB
  • 下载

java之装饰者设计模式

装饰者设计模式: 开发者在使用某个类的方法时,觉得这个类的方法不满足需求,希望在原有的基础上增强它,这时可以使用装饰者模式进行增强 设计步骤: 1、编写一个装饰类,继承被装饰类,要求...

设计模式--装饰者模式java例子

  • 2017年02月06日 17:56
  • 24KB
  • 下载

Java设计模式之 —— 装饰者(Decorator) — 点炒饭

Java设计模式之 —— 装饰者(Decorator) — 做炒饭下面会用做炒饭的例子来描述一下装饰者设计模式,装饰者设计模式比较适合用于拓展功能,我要做炒饭,最简单的就是油盐加米饭就可以做出炒饭,但...

从Java IO学装饰者设计模式

装饰者设计模式就是在不改动原类文件和使用继承的情况下,通过创建一个新的对象来对原对象进行包装,以此来增强原对象的一些功能。现在我们通过对java IO中的字节字符流以及其对应的高效缓冲流来学习一下装饰...

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

1.动机     1)想为component丰富功能,但又不想创建component的子类     2)只需要丰富对象的功能,而不是类 2.实现     继承基类或者抽象类     ...

Java设计模式--装饰者

定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。 设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能...

设计模式之装饰者(java)

装饰者模式其是一种使用组合或者委托的方式对某种类进行进一步包装,避免直接全部使用继承实现很多的时候而显得非常臃肿。当你不想对原来的类结构做出改变,你又想给原来的类添加功能,你有可能就直接继承原来的类,...
  • Healist
  • Healist
  • 2016年12月21日 10:13
  • 143

设计模式-装饰者

  • 2015年11月07日 10:44
  • 4.44MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java设计模式之装饰者模式
举报原因:
原因补充:

(最多只允许输入30个字)