设计模式
校招守门员
这个作者很懒,什么都没留下…
展开
-
懒汉式双重检查就线程安全了吗?
这时候就找到问题了,如果发生指令重排序,线程B有可能在第4行判断singleton不为null,之后线程B开始访问singleton引用的对象,而此时这个对象还没有被A线程初始化。//3,设置instance指向刚分配的内存地址;//3,设置instance指向刚分配的内存地址。2,即使2,3重排序,那这个过程不让其他线程知晓,对外显示为原子操作。//1,分配对象的内存空间。//1,分配对象的内存空间。诺,执行到第7行的时候,就是创建对象,1,不允许2,3步重排序。原创 2022-09-05 12:18:44 · 252 阅读 · 0 评论 -
设计模式 - 工厂模式
抽象工厂模式如果产品种类很多,而且包含不止一类产品,这时我们就使用抽象工厂模式,将产品分组(高端,低端),一个具体工厂的不同方法生成对应不同的产品(汽车,口罩,毛巾);工厂方法模式因为ifelse,会使得创建逻辑与方法代码变得很长而且耦合,使用工厂方法模式,每个类都有具体的工厂生产,由具体的工厂生产具体的产品(原木纸巾,湿纸巾)虽然上述的工厂模式都不要亲自new不同的实例,但是也要指定new不同的工厂来生产。,这时候就需要工厂了,我们可以在工厂中根据条件来创建具体的对象。一个对象完事,这是最简单的;....原创 2022-07-27 10:39:57 · 70 阅读 · 0 评论