Java设计模式之装饰者模式
作者:网络转载 发布时间:[ 2015/4/16 14:36:56 ] 推荐标签:Java 设计模式 装饰模式
三.定义出制作面包的抽象类
抽象类实现了IBread这个制作面包的接口,同时包含IBread接口的实例
对应上述的第2个注意点:装饰者类内有一个真实对象的引用
1 package 装饰模式;
2
3 public abstract class AbstractBread implements IBread {
4
5 private final IBread bread;
6
7 public AbstractBread(IBread bread) {
8 super();
9 this.bread = bread;
10 }
11 @Override
12 public void prepair() {
13 this.bread.prepair();
14 }
15 @Override
16 public void kneadFlour() {
17 this.bread.kneadFlour();
18 }
19 @Override
20 public void steamed() {
21 this.bread.steamed();
22 }
23
24 @Override
25 public void process() {
26 prepair();
27 kneadFlour();
28 steamed();
29 }
30
31 }
四.生产有着色剂的"玉米馒头"
继承AbstarctBread类,所以可以有选择的覆盖正常生产馒头的方法,并添加原有方法原来的信息,同时也可以添加自己的方法
装饰者模式中这里关键,
对应上述的第1个注意点:装饰者类要实现真实类同样的接口
1 package 装饰模式;
2
3 public class CornDecorator extends AbstractBread{
4
5 public CornDecorator(IBread bread) {
6
7 super(bread);
8 }
9
10 public void paint(){
11
12 System.out.println("添加柠檬黄的着色剂");
13 }
14 @Override
15 public void kneadFlour() {
16 //添加着色剂后和面
17 this.paint();
18 super.kneadFlour();
19 }
20
21
22 }
五.生产有甜蜜素的"甜馒头"
实现与第四部一样
1 package 装饰模式;
2
3 public class SweetDecorator extends AbstractBread {
4
5 public SweetDecorator(IBread bread) {
6
7 super(bread);
8 }
9
10 public void paint(){
11
12 System.out.println("添加甜蜜素...");
13 }
14
15 @Override
16 public void kneadFlour() {
17 //添加甜蜜素后和面
18 this.paint();
19 super.kneadFlour();
20 }
21
22 }
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Java性能测试有哪些不为众人所知的原则?Java设计模式??装饰者模式谈谈Java中遍历Map的几种方法Java Web入门必知你需要理解的Java反射机制知识总结编写更好的Java单元测试的7个技巧编程常用的几种时间戳转换(java .net 数据库)适合Java开发者学习的Python入门教程Java webdriver如何获取浏览器新窗口中的元素?Java重写与重载(区别与用途)Java变量的分类与初始化JavaScript有这几种测试分类Java有哪四个核心技术?给 Java开发者的10个大数据工具和框架Java中几个常用设计模式汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等

sales@spasvo.com