20200819——jdk中的设计模式

前言

面试的时候被问到了,jdk的设计原理。学的都是框架的设计模式,工厂模式,代理模式,单例模式等等,一直没想过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

作用:共享对象,节省内存
Integer.valueOf
String的常量池

代理模式Proxy

作用:透明调用被代理模式,无须知道复杂的实现细节。增强被代理类的功能

观察者模式Observer

通知对象状态改变

模板模式

作用:定义算法的结构,子类只实现不同的部分
ThreadPoolExecutor.Worker

策略模式

作用:提供不同的算法
THreadPoolExecutor四种拒绝策略

责任链模式

作用:请求会被链上的对象处理,但是客户端不知道哪些请求会被哪些对象处理。
ClassLoader的双亲委派机制

后记

慢慢整理,慢慢学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值