在JDK中有许多常用的设计模式被广泛应用,下面列举几个常见的设计模式及其在JDK中的应用示例:
1. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。
- 示例:Java中的`java.lang.Runtime`类的`getRuntime()`方法,返回一个`Runtime`实例,保证在整个应用中只有一个`Runtime`对象。
2. 工厂模式(Factory Pattern):通过一个共同的接口或基类来创建对象,将对象的创建和使用解耦。
- 示例:Java中的`java.util.Calendar`类,通过`getInstance()`方法获取一个日历对象,隐藏了具体实现类细节。
3. 观察者模式(Observer Pattern):定义了一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会收到通知并自动更新。
- 示例:Java中的`java.util.Observable`类和`java.util.Observer`接口,用于实现观察者模式。
4. 适配器模式(Adapter Pattern):通过一个适配器将两个不兼容的接口或类进行转换,使它们能够一起工作。
- 示例:Java中的`java.util.Arrays`类的`asList()`方法将一个数组转换为一个`List`对象,实现了数组与`List`之间的适配。
5. 装饰器模式(Decorator Pattern):动态地在一个对象上添加额外的行为,使用装饰器包装原始对象,以扩展其功能。
- 示例:Java中的`java.io.InputStream`和`java.io.OutputStream`类提供了多个装饰器类,如`BufferedInputStream`和`DataOutputStream`,用于在原始输入流或输出流上添加额外的功能。
6. 迭代器模式(Iterator Pattern):提供一种遍历集合对象元素的方式,而无需暴露集合的内部表示。
- 示例:Java中的`java.util.Iterator`接口和相关的实现类,如`java.util.ArrayList`中的迭代器类`ArrayList$Iterator`。
这些只是JDK中的一些常用设计模式示例,实际上JDK中还应用了许多其他设计模式,如模板方法模式、代理模式、策略模式等。设计模式在JDK中的广泛应用提供了很多优秀的示例和实践方案,可以作为学习和应用设计模式的参考。