这两种模式在Java IO包下应用很多
典型的包装者模式:InputStream ---> FilterInputStream ---> InputStream
典型的适配器模式:Reader ---> InputStreamReader ---> InputStream
一、定义
先看下两者的定义
装饰者:不改变接口,加入新的责任
适配器:讲一个接口改为另一个接口
不同点:
从定义我们看得出,一个改变了被包装对象的接口,一个保持原有的接口。
二、类图
(上点图片更直观,这里借用下HeadFirst的类图)
装饰者模式
适配器模式
总结!
不同点:
装饰者包含了一个装饰者类型的对象
适配器包含了一个其他类型的对象
共同点:
这对于调用者来说都是透明的,调用者只知道他们操作的是被调用者类型的对象。
所以共同点:
1. 让调用者代码与真实被调用的对象解耦。
2. 封装可变的部分代码
三、实现
在代码的实现上,他们也有明显的区别。
不同点:
装饰者在实现的过程中,只需要在调用被包装对象相同方法前加入新的”责任“
适配器在实现接口的方法时往往要调用很多的被包装对象的方法类完成任务。这也是在应用适配器方法时考虑最多的。
写得不好,欢迎大家讨论!!
- 大小: 183 KB
- 大小: 80.5 KB
分享到:
相关推荐
适配器模式主要分为两种类型:类适配器模式和对象适配器模式。类适配器模式是通过继承目标接口并实现其方法,同时持有原始类的引用来实现适配;对象适配器模式则是通过包含或聚合原始类,并实现目标接口,调用原始类...
同样地,面向对象设计员也沿袭一些模式,像“用对象表示状态”和“修饰对象以便 于你能容易地添加/删除属性”等。一旦懂得了模式,许多设计决策自然而然就产生了。 我们都知道设计经验的重要价值。你曾经多少次有过...
结构型模式中的适配器模式允许两个不兼容的接口协同工作,装饰器模式可以动态地为对象添加新的行为或责任,而代理模式可以在访问原对象时添加额外的功能,如权限控制。 行为型模式中的策略模式定义了一系列算法,并...
- **相似模式对比**:比较不同设计模式之间的异同点,例如比较适配器模式和装饰器模式的区别,帮助开发者更准确地选择适合当前需求的设计模式。 通过以上对设计模式的详细介绍,我们可以看出设计模式不仅是一种解决...
- 适配器模式、装饰者模式、观察者模式等。 9. **JVM优化**: - 参数调整:理解JVM启动参数,如-Xms, -Xmx, -XX:+UseG1GC等。 - 性能监控:VisualVM、JConsole等工具的使用。 - 堆内存调优:对象分配、垃圾回收...
- **其他模式**:如装饰者模式、适配器模式、代理模式等在实际项目中的应用。 9. **Spring框架** - **依赖注入**:理解IoC容器的工作原理,使用@Autowired和@Resource注解。 - **AOP**:理解面向切面编程,实现...
- 熟悉常见的设计模式,如单例、工厂、观察者、装饰者、适配器、代理等。 - 能够根据实际场景选择合适的设计模式应用。 8. **IO流** - 理解流的分类,如字节流和字符流,以及输入流和输出流。 - 掌握File类的...
- **常用设计模式**:熟悉工厂模式、单例模式、观察者模式、装饰者模式、适配器模式等经典设计模式的实现与应用。 10. **JVM优化**: - **JVM内存模型**:理解堆内存、栈内存、方法区等区域的作用。 - **调优...
- 结构型模式:如代理、装饰、适配器、桥接、组合、外观、享元模式。 - 行为型模式:如策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器模式。 7. **其他** - 架构设计:MVC、微服务、SOA等架构...
- 何时使用装饰器模式,它与适配器模式有何异同? 9. **数据库交互** - ADO.NET和Entity Framework在.NET中的作用是什么? - JDBC在Java中如何用于连接和操作数据库? 10. **性能优化** - .NET和Java中有哪些...
- 结构型模式:如适配器、代理、装饰器等,学习如何优化系统结构。 - 行为型模式:如策略、观察者、迭代器等,掌握如何处理对象间的交互。 以上就是Java笔试面试中可能涉及的主要知识点,全面理解和熟练掌握这些...
- 常见的设计模式:单例、工厂、观察者、装饰器、适配器等。 这个题集可能会包含以上各个领域的题目,每个题目都会对应一个详细的解答,帮助学习者理解和巩固Java编程的核心概念和技术。通过解答这些题目,你可以...
6. **设计模式**:熟悉并能应用单例、工厂、观察者、装饰器、适配器等常见设计模式。 7. **Spring框架**:掌握依赖注入(DI)和面向切面编程(AOP),理解Spring Boot和Spring Cloud的相关知识。 接下来,转向.NET...
- 常见设计模式:单例、工厂、观察者、装饰器、代理、适配器等模式的理解和应用。 10. **单元测试与调试**: - NUnit, MSTest, xUnit等单元测试框架的使用。 - 使用Visual Studio的调试工具进行断点、步进、异常...
- 常见设计模式:如单例、工厂、观察者、装饰者、适配器等,理解其应用场景和实现方式。 9. **框架与库**: - Spring框架:理解Ioc/DI、AOP的核心概念,以及Spring Boot和Spring Cloud的应用。 - MyBatis:了解...
- 结构型模式:适配器、装饰器、桥接、组合、外观、享元、代理模式。 - 行为型模式:观察者、模板方法、策略、状态、职责链、命令、解释器、迭代器、备忘录模式。 10. **Spring框架** - IoC:理解依赖注入和控制...
- 结构型模式:适配器、装饰器、代理、桥接、组合、外观、享元等。 - 行为型模式:观察者、模板方法、策略、职责链、访问者、状态、命令、迭代器、备忘录等。 以上只是Java面试题中可能涉及的一部分知识点,实际...
19、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,...