20200819——jdk中的设计模式

前言 面试的时候被问到了,jdk的设计原理。学的都是框架的设计模式,工厂模式,代理模式,单例模式等等,一直没想过jdk为什么要这么设计。
类间的关系有五种 继承, 委托, 依赖,聚合,组合
20200819——jdk中的设计模式
文章图片

单例模式Singleton 作用:是为了保证类中只有一个实现类,提供全局的访问点。
Runtime
静态工厂Factory 作用:代替构造函数创建对象 方法名比构造函数更清晰
Interger.valueOf
Class.forName

public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }

private static native Class forName0(String name, boolean initialize, ClassLoader loader, Class caller) throws ClassNotFoundException;

工厂方法Factory Method 作用:子类决定哪一个类实现
抽象工厂Abstract Factory 作用:创建某一种类的对象
构造者模式 Builder 作用:将构造逻辑提到单独的类中,分离类的构造逻辑和表现
原型模式Prototype 作用:复制对象 浅拷贝,深拷贝
.clone方法
适配器模式Adapter 作用:使不兼容的接口相容
java.io.InputStreamReader
桥接模式Bridge 作用:将抽象部分与其实现部分分离,使他们都可以独立的变化
装饰器模式Decorator 作用:为类添加新的功能,防止类继承带来爆炸式的增长
java.io包
享元模式Flyweight 【20200819——jdk中的设计模式】作用:共享对象,节省内存
Integer.valueOf
String的常量池
代理模式Proxy 作用:透明调用被代理模式,无须知道复杂的实现细节。增强被代理类的功能
观察者模式Observer 通知对象状态改变
模板模式 作用:定义算法的结构,子类只实现不同的部分
ThreadPoolExecutor.Worker
策略模式 作用:提供不同的算法
THreadPoolExecutor四种拒绝策略
责任链模式 作用:请求会被链上的对象处理,但是客户端不知道哪些请求会被哪些对象处理。
ClassLoader的双亲委派机制
后记 慢慢整理,慢慢学习。

    推荐阅读