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