
设计模式
java之父中国分父
原理易懂,源码很复杂,这条路走不通。
那就走实战线路把,实战遇到问题再去研究稍微深一点的原理
启蒙老师:毕向东/王泽/雷锋阳
展开
-
代理模式/装饰着模式/继承
增强 代理模式(增强)(和装饰者模式的区别) 参考博客 spring的Aop动态代理(代理对象其实也是对原来对象的增强) 这里其实有jdk的动态代理,和CGLIB的动态代理(具体区别待研究) 代理模式类之间的关系在编译时确定,但是要代理的类是不明确的 装饰者模式的关系在编码时确定,并且明确了要装饰的对象 装饰者模式(增强),与继承的区别,视频讲的特别好 参考视频 IO流体系当中,读(写)文件是一个一个字节(或字符) 为了提高效率,加入缓冲技术 BufferedWriter(BufferedReader)原创 2020-11-04 10:49:23 · 144 阅读 · 0 评论 -
java单例模式
单例模式:毕向东 视频第八分钟开始 保证对象在内存中的唯一性 实现方式: 1.构造函数私有化(无法在类外部使用new) 2.在类内部创建一个本类对象(私有的静态成员) 3.提供一个静态方法获取到该对象(公有静态方法可以直接使用类名调用,比较方便) static修饰的只加载一次 其中:懒汉式使用对象时才会被创建,饿汉式就是类加载时对象就会被创建 懒汉式线程安全问题:synchronized 方案一:获取对象的方法使用synchronized(效率低原因:每个线程都需要判断锁)修饰(单机环境) 方案二:使用双原创 2020-11-04 10:47:44 · 87 阅读 · 0 评论 -
适配器模式
适配器模式 spring体系中,很多已Adapter(适配器)结尾的抽象类 如拦截器:继承抽象类HandlerInterceptorAdapter,或者实现HandlerInterceptor接口都可以 继承抽象类:假如抽象类有3个方法,你用到了一个,就可以只重写一个方法即可。 实现接口:则接口的所有抽象方法都必须实现 ...原创 2020-11-04 10:46:34 · 79 阅读 · 0 评论 -
工厂模式(降低耦合度)
参考视频11分开始 spring的IOC底层,加载配置文件,从配置文件中获取类名,通过反射,在工厂方发中创建单例bean 其实工作中我们使用谷歌工具包下Lists.newArrayList(),这个方法返回一个空的list。代码内部其实就是new ArrayList() 这里肯定会有疑问,为什么要用这个方法,我new ArrayList()不行吗? eg:举个不恰当的例子 这里引入一个思想就是工厂,当项目经理要求项目中所有的ArrayList初始化大小设置为8 项目中new ArrayList的代码大概原创 2020-11-04 10:44:16 · 624 阅读 · 0 评论 -
策略模式,代替if/else?附带简单工厂模式
工厂模式 spring的IOC底层,加载配置文件,从配置文件中获取类名,通过反射,在工厂方发中创建单例bean 适配器模式 springboot中 单例模式 懒汉式 饿汉式 代理模式 装饰者(增强)模式 IO流体系当中,读(写)文件是一个一个字节(或字符) 为了提高效率,加入缓冲技术 BufferedWriter(BufferedReader) BufferedInputStream(BufferedOutStream) 装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的功能原创 2020-06-06 10:48:57 · 770 阅读 · 0 评论