Java装饰器模式-解析

上传人:M****1 文档编号:486295960 上传时间:2024-02-17 格式:DOC 页数:4 大小:22.01KB
返回 下载 相关 举报
Java装饰器模式-解析_第1页
第1页 / 共4页
Java装饰器模式-解析_第2页
第2页 / 共4页
Java装饰器模式-解析_第3页
第3页 / 共4页
Java装饰器模式-解析_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java装饰器模式-解析》由会员分享,可在线阅读,更多相关《Java装饰器模式-解析(4页珍藏版)》请在金锄头文库上搜索。

1、装饰器目的:依然是面向对象的精髓思想,少用继承实现,多用组合。融合到现实生活中,我们的电脑主板上有许多可以扩展的插槽,但是出厂的时候并没有全部插上器件,就是让我们能够灵活的有选择性的选择自己需要的硬件来组装。装饰器模式正是基于此:一个一个的装饰器,为我们灵活带来了扩展。装饰器模式和代理模式有点想象,都是AOP思想。但是我觉得用一句通俗的话来解释:代理模式是定死需要被代理的类,通过反射在每个被代理的类的方法上面做文章,而装饰器模式是定死一个个的方法,来处理不同的对象。所以总结:装饰器是基于对象,而代理模式是基于方法而言的。都利用的是AOP思想。开始:-1. 接口:车Car。里面只有方法:开车dr

2、ive();package decorator;/* * 接口:车。只有一个方法,就是开车 * * author Administrator * */public interface Car void drive();2. 奥迪,宝马,奔驰。都实现了Car这个接口,当然需要Override开车这个方法。package decorator;/* * 奥迪车类 * * author Administrator * */public class AudiCar implements Car Overridepublic void drive() System.out.println(奥迪开走了);p

3、ackage decorator;/* * 宝马车类 * * author Administrator * */public class BMWCar implements Car Overridepublic void drive() System.out.println(宝马车开走了);package decorator;/* * 奔驰车类 * * author Administrator * */public class BZCar implements Car Overridepublic void drive() System.out.println(奔驰车开走了);3. 装饰器1:

4、加油、洗车package decorator;/* * 第一个装饰器:开车前加油,开车后洗车 * * author Administrator * */public class Decorator1 implements Car private Car car;public Decorator1(Car car) this.car = car;Overridepublic void drive() System.out.println(加油);car.drive();System.out.println(洗车);4. 装饰器2:检查车辆、保养车子package decorator;/* * 装

5、饰器2:开车前检查车辆,开车后保养车子 * * author Administrator * */public class Decorator2 implements Car private Car car;public Decorator2(Car car) this.car = car;Overridepublic void drive() System.out.println(检查车辆);car.drive();System.out.println(保养);5. 测试:package decorator;public class TestDecorator public static v

6、oid main(String args) / 针对三个牌子的车只用某一个装饰器Car car1 = new Decorator1(new AudiCar();/ 奥迪车的装饰器1car1.drive();Car car2 = new Decorator1(new BMWCar();/ 宝马车的装饰器1car2.drive();Car car3 = new Decorator2(new AudiCar();/ 奥迪车的装饰器2car3.drive();Car car4 = new Decorator2(new BMWCar();/ 宝马车的装饰器2car4.drive();Car audi =

7、 new Decorator1(new Decorator2(new AudiCar();/ 奥迪车用2个装饰器audi.drive();System.out.println(-);Car bmw = new Decorator2(new Decorator1(new BMWCar();/ 宝马车用2个装饰器bmw.drive();System.out.println(-);Car bz = new Decorator1(new Decorator2(new BZCar();/ 奔驰车用2个装饰器bz.drive();/ 感想:对于设计模式而言,我想应该都是大师们通过很多实际现象抽取出来的精髓思想,/ 因为对于很多问题重复的使用不完美的方式来解决,总会让人想出来更好的解决方案,/ 从而取其精华,然后用于其他方面的实践。/ 对于此处的装饰器模式,Java IO就是才用这种方式。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 文学/艺术/历史 > 人文/社科

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号