Java设计模式之装饰模式详解编程语言
2023-06-13 09:20:41 时间
装饰模式的定义
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活
装饰模式的结构和说明/** * 组件对象的接口,可以给这些对象动态地添加职责 * @author blog.ytso.com public abstract class Component { /** * 示例方法 public abstract void run(); }2、具体实现组件对象的对象
/** * 具体实现组件对象接口的对象 * @author blog.ytso.com public class ConcreateComponent extends Component{ @Override public void run() { //相应的功能处理 System.out.println("run 跑起来"); }3、抽象的装饰器对象
/** * 抽象装饰者,维持一个指向组件对象的接口对象,并定义一个与组件接口一致的接口 * @author blog.ytso.com public abstract class Decorator extends Component { // 持有组件对象 protected Component component; // set方法,传入组件对象 public void setComponent(Component component) { this.component = component; public void run() { // 转发请求组件对象,可以在转发前后执行一些附加动作 component.run(); }4、具体的装饰器实现对象,定义两个示意对象
/** * 装饰器的具体实现对象A,向组件对象添加职责 * @author blog.ytso.com public class ConcreateDecoratorA extends Decorator{ public void run(){ super.run(); go(); //额外添加的职责 System.out.println("run A"); public void go(){ System.out.println("A走一会"); }
/** * 装饰器的具体实现对象B,向组件对象添加职责 * @author blog.ytso.com public class ConcreateDecoratorB extends Decorator{ public void run(){ super.run(); go();//额外添加的职责 System.out.println("run B"); public void go(){ System.out.println("B走一会"); }5、测试类
/** * 测试类 * @author blog.ytso.com public class Test { public static void main(String[] args) { ConcreateComponent cc = new ConcreateComponent(); ConcreateDecoratorA a = new ConcreateDecoratorA(); ConcreateDecoratorB b = new ConcreateDecoratorB(); a.setComponent(cc); b.setComponent(cc); a.run(); b.run(); }
run 跑起来 A走一会 run A run 跑起来 B走一会 run B
作者:blog.ytso.com
14278.html
cgojava相关文章
- java 取余和取整_Java取整、取余
- java冒泡排序概练_Java的冒泡排序[通俗易懂]
- java从入门到精通_Java 入门到精通的过程
- java工厂模式实例(设计模式)「建议收藏」
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java 流水线模式_流水线设计模式实现
- Java版五子棋小游戏(java控制台)
- java mutator,Java – 使用Accessor和Mutator方法「建议收藏」
- Java数组循环_java遍历object数组
- Java设计模式之模板模式
- Java设计模式之享元模式
- Java设计模式之外观模式
- Java设计模式之职责链模式
- Java设计模式之解释器模式
- Java设计模式之中介者模式
- Java设计模式之备忘录模式
- Java设计模式之观察者模式
- 面向对象设计模式--单例模式详解+实际应用(Java)
- java设计模式之建造者模式详解架构师
- Java 单例模式的线程安全实现详解编程语言
- Java实现Redis事务管理(redis事务java)
- 数据库简易指南:如何使用 Java 连接 MySQL 数据库(java连接mysql)
- Exploring the Power of Java with MongoDB for Enhanced Data Management(java与mongodb)
- 管理Linux下Java版本管理:轻松实现多版本切换(linux下java版本)
- Java更新提升Oracle软件性能(java更新oracle)
- Java与Oracle同步一种新的数据库模式(java同步oracle)
- Oracle数据库中运行Java程序的简易指南(oracle中写java)