装饰模式

发布时间:2017-6-29 10:02:45编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"装饰模式",主要涉及到装饰模式方面的内容,对于装饰模式感兴趣的同学可以参考一下。

Java 装饰模式(4.4)

装饰模式可以灵活地为基本对象添加功能,也可以撤销功能装饰。

假设需要撤销TSong装饰,则在IProfession中添加public abstract IProfession removeSongTalent();

IProfession的子类型给出实现:

Teacher:
    @Override  public IProfession removeSongTalent() {     return this;    }
TEnglish:
    @Override public IProfession removeSongTalent() {
        return new TEnglish(base.removeSongTalent());
}
TSong:
    @Override  public IProfession removeSongTalent() {
        return base.removeSongTalent();
    }

测试代码

        IProfession p = (IProfession) God.create("Profession-decorator");//
        p.say("类层次");
        p = new TSong(
                new TSong(
                        new TEnglish(
                                new TSong(
                                        new TEnglish(p)))));
        p.say("LSP");
        p = p.removeSongTalent();
        p.say("继承");

输出:

讲解[类层次]
讲解[E文(旋律(E文(旋律(旋律(LSP)))))]
讲解[E文(E文(继承))]



上一篇:java面试总结
下一篇:CentOS下MySQL忘记root密码解决方法【转载】

相关文章

关键词: 装饰模式

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款