违令十三杀,达子的春天国语版,氨水生产厂家
本篇随笔主要介绍用java实现简单的装饰器设计模式:
先来看一下装饰器设计模式的类图:
从图中可以看到,我们可以装饰component接口的任何实现类,而这些实现类也包括了装饰器本身,装饰器本身也可以再被装饰。
下面是用java实现的简单的装饰器设计模式,提供的是从基本的加入咖啡入手,可以继续加入牛奶,巧克力,糖的装饰器系统。
interface component { void method(); } class coffee implements component { @override public void method() { // todo auto-generated method stub system.out.println("倒入咖啡"); } } class decorator implements component { public component comp; public decorator(component comp) { this.comp = comp; } @override public void method() { // todo auto-generated method stub comp.method(); } } class concretedecoratea extends decorator { public component comp; public concretedecoratea(component comp) { super(comp); this.comp = comp; } public void method1() { system.out.println("倒入牛奶"); } public void method2() { system.out.println("加入糖 "); } public void method() { super.method(); method1(); method2(); } } class concretedecorateb extends decorator { public component comp; public concretedecorateb(component comp) { super(comp); this.comp = comp; } public void method1() { system.out.println("加入巧克力"); } public void method() { super.method(); method1(); } } public class testdecoratepattern { public static void main(string[] args) { component comp = new coffee(); comp.method(); system.out.println("--------------------------------------------------"); component comp1 = new concretedecoratea(comp); comp1.method(); system.out.println("--------------------------------------------------"); component comp2 = new concretedecorateb(comp1); comp2.method(); system.out.println("--------------------------------------------------"); component comp3 = new concretedecorateb(new concretedecoratea(new coffee())); comp3.method(); system.out.println("--------------------------------------------------"); component comp4 = new concretedecoratea(new concretedecorateb(new coffee())); comp4.method(); } }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论