-
SOLID
- 单一职责原则 - 一个类只负责一个职责 - 方法级别做单一职责也是OK的
- 开放封闭原则 - 类对提供方扩展开放,对使用方修改关闭
- 里式替换原则 - 继承需要注意什么问题和遵守什么原则
- 接口隔离原则 - 客户端不应该依赖它不需要的接口
- 依赖反转原则 - 传参是接口而不是具体实现类
-
创建型
-
单例模式
-
懒汉,线程不安全
image.png -
懒汉,线程安全
image.png -
饿汉
image.png -
饿汉,变种
image.png -
静态内部类
image.png -
枚举 - 享有特权的客户端可以借助AccessibleObject.setAccessible方法,通过反射机制调用私有构造器。如果需要抵御这种攻击,可以修改构造器,让它在被要求创建第二个实例的时候抛出异常。
image.png- 枚举Enum是个抽象类,一旦一个类声明为枚举,实际上就是继承了Enum,所以会有(String.class,int.class)的构造器。既然是可以获取到父类Enum的构造器,反射是因为自身的类没有无参构造方法才导致的异常,并不能说单例枚举避免了反射攻击。
- 反射在通过newInstance创建对象时,会检查该类是否ENUM修饰,如果是则抛出异常,反射失败。
-
双重校验锁
image.png
-
-
工厂模式 - ThreadPoolExecutor
image.png -
建造者模式
image.png
-
-
结构型
- 适配器模式 - Netty - ChannelInboundHandlerAdapter&ChannelOutboundHandlerAdapter
- 装饰模式
- 外观模式 - Facade
-
行为型
-
职责链模式 - Netty - ChannelPipeline
-
状态模式
image.png -
观察者模式
image.png
-
网友评论