设计模式
一.单例模式(涉及到线程安全、内存模型、类加载)
1.1 什么是单例模式:在整个运行时域,一个类只有一个实例对象
1.2 单例模式的作用:有的类的实例对象的创建和销毁对资源消耗可能不大,比如String,但是有些类的实例对象可能比较庞大和复杂,如果频繁的去创建和销毁,不进行复用的话,可能会造成比较大的性能浪费。比如我们想要链接数据库时就需要创建一个数据库链接对象,且这个对象是可以复用的,这个时候如果我们把它设计成单例的话,那我们就只需要创建一次,以后都可以进行复用,这样可以节省很多资源。
1.3 如何创建单例模式: 创建单例模式之前要考虑下三种情况,1、是否线程安全 2、是否懒加载(滞后构造,调用getInstance之后才创建对象) 3、是否可以反射破坏
二.工厂模式
2.1 工厂模式的作用:实现了创建者和调用者的分离
2.2 工厂模式的分类:简单工厂模式 用来生产同一等级结构的任意产品(对于增加新的产品,需要覆盖已有代码)
工厂方法模式 用来生产同一等级结构中的固定产品(支持增加任意产品)
抽象工厂模式 围绕一个超级工厂创建其他工厂。该超级工厂又被称为其它工厂的工厂 适用场景:①客户端不依赖于产品类实例如何被创建、实现等细节 ②强调一系列相关的产品对象(属于同一产品族),一起使用创建对象需要大量的重复代码 ③提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现
三.建造者模式
3.1 定义: 将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示
3.2 作用: 在用户无感知对象的建造工程和细节的情况下就可以直接创建复杂的对象。

四、代理模式
4.1 静态代理

4.2 动态代理


浙公网安备 33010602011771号