全国 【切换城市】欢迎您来到装修百科!
关注我们
我要装修

设计模式:结构类之装饰模式(Decorator)意图场景和代码示例(装饰设计模式java)

发布:2024-09-08 浏览:27

核心提示:导引:本篇文章主要讲结构模式中的装饰模式(Decorator)模式的意图场景和结构模式。关于其它结构类设计模式,请查阅:设计模式:结构类之组合模式(Composite)应用场景和代码示例设计模式:结构类之桥接模式(Bridge)应用场景和代码示例设计模式:结构类之适配器模式(Adapter)应用场景和代码示例创建类设计模式请查阅:设计模式:创建类之抽象工厂(Abstract Factory)场景和代码示例设计模式:创建类之构建者模式(Builder)应用场景和示例设计模式:创建类之FactoryMetho

导引:本篇文章主要讲结构模式中的装饰模式(Decorator)模式的意图场景和结构模式。
关于其它结构类设计模式,请查阅:设计模式:结构类之组合模式(Composite)应用场景和代码示例设计模式:结构类之桥接模式(Bridge)应用场景和代码示例设计模式:结构类之适配器模式(Adapter)应用场景和代码示例创建类设计模式请查阅:设计模式:创建类之抽象工厂(Abstract Factory)场景和代码示例设计模式:创建类之构建者模式(Builder)应用场景和示例设计模式:创建类之FactoryMethod(工厂方法)模式应用场景和示例设计模式:创建类型之原型模式Prototype意图与示例模式意图在不改变原来类的情况下,进行扩展。
动态的给对象增加一个业务功能,就功能来说,比生成子类更方便。
应用场景1- 在不生成子类的情况下,为对象动态的添加某些操作。
2- 处理一些可以撤销的职责。
3- 当不能使用生成子类来扩充时。
模式结构结构代码Component 外部接口,用于定义外部调用的形式。
提供默认的处理方法。
interface Component{ public void operation(); }ConcreteComponent 具体的处理类,用于实现operation方法。
class ConcreteComponent implements Component{ @Override public void operation() { // TODO Auto-generated method stub System.out.println("ConcreteComponent operation()"); } }Decorator 装饰类,内部关联一个component对象,调用其operation方法,并添加自己的业务操作。
class Decorator implements Component{ private Component component; @Override public void operation() { // TODO Auto-generated method stub System.out.println("before decorator!"); component.operation(); System.out.println("after decorator!"); } public Decorator() { // TODO Auto-generated constructor stub } public Decorator(Component component){ this.component = component; } }全部代码 1 package com.nd.decorator; 2 interface Component{ 3 public void operation(); 4 } 5 class ConcreteComponent implements Component{ 6 7 @Override 8 public void operation() { 9 // 业务处理逻辑10 System.out.println("ConcreteComponent operation()");11 }12 13 }14 class Decorator implements Component{15 private Component component;16 @Override17 public void operation() {18 // 实现组件的主功能逻辑19 System.out.println("before decorator!");20 component.operation(); 21 System.out.println("after decorator!");//处理自己的功能逻辑22 }23 public Decorator() {24 // 构造器25 }26 public Decorator(Component component){27 this.component = component;28 }29 30 }31 32 33 public class test {34 public static void main(String[] args) {35 Component component = new Decorator(new ConcreteComponent());36 component.operation();37 }38 } 运行结果before decorator!ConcreteComponent operation()after decorator! 总结本文主要是关于装饰模式的简介,理解其用意和实现结构——装饰模式有点“偷梁换柱”的意思——可以既要被装饰组件的功能,还能按照自己的意思一定进行改变。

  • 收藏

分享给我的朋友们:

上一篇:谢谢]很多网友说中央空调太费电了(中央空调很费电吗) 下一篇:天燃气热水器选购注意什么 天燃气热水器的禁忌是什么

一键免费领取报价清单 专享六大服务礼包

装修全程保障

免费户型设计+免费装修报价

已有312290人领取

关键字: 装修设计 装修公司 别墅装修设计

发布招标得免费设计

申请装修立省30%

更多装修专区

点击排行