设计模式
文章平均质量分 63
陈行恩
相由心生
展开
-
23种设计模式之代理模式(动态代理)
直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。:一个动态代理 , 一般代理某一类业务 , 一个动态代理可以代理多个类,代理的是接口!动态代理的代理类是动态生成的 . 静态代理的代理类是我们提前写好的。现在用的比较多的是 javasist 来生成动态代理。一类是基于接口动态代理 , 一类是基于类的动态代理。公共的业务由代理来完成 . 实现了业务的分工 ,一个动态代理可以代理多个类,代理的是接口!动态代理的角色和静态代理的一样 .我们这里使用JDK的原生代码来实现。.原创 2022-08-07 17:38:42 · 511 阅读 · 0 评论 -
23种设计模式之单例模式
懒汉式注意:上述在多线程中,容易出现线程安全问题此时是否就安全了?极端情况下,此模式也不安全,原因如下:此步骤不是一个原子性操作,实际上是有三步操作:那么可能就会出现指令重排,即,若线程A执行顺序为1-3-2,线程B执行顺序为1-2-3;那么当线程A执行到1-3时,此时还没有实际生成对象,但是线程B认为singletonHung!=null,那么就会直接走return,那么线程B的得到的是没有完成构造的对象。那么现在为了避免指令重排,就要使用volatile关键字避免指令重排那么经过上述操作原创 2022-06-02 00:21:12 · 119 阅读 · 0 评论 -
23种设计模式之代理模式(静态代理)
静态代理模式真实对象和代理对象要实现同一个接口代理对象要代理真实角色优点:代理对象可以做很多真实对象做不了的事情真实对象专注做自己的事情例:买票public class TicketBuyer implements ITicketPurchase{ @Override public void buyTicket() { System.out.println("已经买到票了!"); } public static void ma原创 2022-03-28 15:45:03 · 663 阅读 · 0 评论