设计模式
文章平均质量分 80
loopnz_
这个作者很懒,什么都没留下…
展开
-
设计模式-结构型-享元模式
享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。享元模式的主要优点是:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。享元模式的主要角色有如下。原创 2023-08-09 23:21:20 · 22 阅读 · 0 评论 -
设计模式-创建型-单例模式
那么步骤3执行后 singleton 已经不为 null ,但是未执行步骤2,singleton对象初始化不完全,此时线程B执行 getInstance() 方法,第一步判断时 singleton 不为null,则直接将未完全初始化的singleton对象返回了。代码时,恰好这三个步骤重排序后为1 3 2,如果一个字段被声明成volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的,同时还会禁止指令重排序。单例模式并不是绝对安全的,可以通过反射来破坏,只有枚举安全类是安全的。原创 2023-08-07 23:26:25 · 22 阅读 · 0 评论 -
设计模式-创建型-原型模式
意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解决:在运行期建立和删除原型。1、当一个系统应该独立于它的产品创建,构成和表示时。2、当要实例化的类是在运行时刻指定时,例如,通过动态装载。3、为了避免创建一个与产品类层次平行的工厂类层次时。4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。如何解决:利用已有的一个原型对象,快速地生成和原型对象一样的实例。原创 2023-08-07 23:27:15 · 37 阅读 · 0 评论